Image encoding/decoding method and apparatus using intra-screen prediction

ABSTRACT

Disclosed is a decoding method which uses an intra-screen prediction. A decoding method which uses an intra prediction performed in a decoding apparatus comprises the steps of: receiving a bit stream; obtaining decoding information from the received bit stream; generating a prediction block for a current block to be decoded using the obtained decoding information; and restoring the current block by adding a residual block obtained from the bit stream and the prediction block. Accordingly, a compression ratio of an image can be improved.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a National Stage of International Application No.PCT/KR2017/004696, filed on May 2, 2017, which claims priority fromKorean Patent Application No. 10-2016-0054279, filed on May 2, 2016.

TECHNICAL FIELD

The present invention relates to an image encoding/decoding method andapparatus using intra-screen prediction, and more specifically, to amethod and apparatus which perform intra prediction by referring to anarea already encoded in a current block, using a reference pixel closeto a pixel to be encoded, and using block sizes obtained by binarypartitioning, thereby improving the accuracy of prediction.

BACKGROUND ART

High efficiency video coding (HEVC/H.265) is the next generation videocoding technology. ISO/IEC Moving Picture Expert Group (MPEG), whichdeveloped H.264/MPEG-4 AVC, and Video Coding Experts Group of ITU-Tformed a team in January 2010 as the joint collaborative team on videocoding (JCT-VC) to work on standardization of HEVC/H.265, which has beenapproved as the next generation final standard.

HEVC generates a prediction block based on spatial correlation ortemporal correlation of a current block to be coded on the basis ofblock-unit prediction and derives a residual block obtained by adifference between the current block and the prediction block.

In this case, the process of generating a prediction block using spatialcorrelation is called intra prediction or intra-prediction. In anexisting intra-prediction method, since a reference pixel is padded andused as it is, when a distance to a pixel to be encoded is increased, aprediction value becomes inaccurate and encoding efficiency becomespoor.

In addition, since in an existing encoding method, a block form is fixedand a partitioning method is based on a quadtree partitioning scheme, anencoding efficiency is reduced in a complex picture or a picture havinghorizontally or vertically similar forms.

Therefore, there is a need for a method for improving an encodingefficiency by using a more accurate intra prediction value and using amore flexible block form.

DISCLOSURE Technical Problem

In order to solve the above-described problems, an objective of thepresent invention is to provide an encoding method using intraprediction.

In order to solve the above-described problems, another objective of thepresent invention is to provide an encoding apparatus using intraprediction.

Technical Solution

To achieve the above objective, one aspect of the present inventionprovides an encoding method using intra prediction.

The decoding method which uses intra prediction performed in a decodingapparatus may comprises receiving a bit stream, obtaining decodinginformation from the received bit stream, generating a prediction blockfor a current block to be decoded using the obtained decodinginformation and restoring the current block by adding a residual blockobtained from the bit stream to the prediction block.

In in the generating of the prediction block, the prediction block forthe current block may be generated by generating a prediction value foreach pixel of the current block using at least one main reference blockselected from restored pixels belonging to a block adjacent to thecurrent block or belonging to at least one sub-block of the currentblock.

The main reference pixel may be a pixel located in an intra predictiondirection among the restored pixels.

The generating of the prediction block may includes when two or moremain reference pixels are located in the intra prediction direction, thegenerating of the prediction block for the current block using two mainreference pixels nearest to the current pixel, which are located aheadof and behind in the intra prediction direction with respect to thecurrent pixel to be predicted in the current block.

In the generating of the prediction block for the current block usingthe two main reference pixels nearest to the current pixel, theprediction block may be generated by using an average of the two mainreference pixels or the sum of values obtained by applying a weight toeach of the two main reference pixels as a prediction value of thecurrent pixel.

The at least one sub-block may be obtained by partitioning the currentblock using one of a quadtree scheme and a binary tree scheme, or isobtained by partitioning the current block using the quadtree scheme andthe binary tree scheme together.

The at least one sub-block may consist of pixel lines locatedhorizontally at even-numbered or odd-numbered positions in the currentblock.

The at least one sub-block may consist of pixel lines located verticallyat even-numbered or odd-numbered positions in the current block.

In the at least one sub-block, coordinates (x, y) of each pixel in thecurrent block may consist of an even x-coordinate and an eveny-coordinate, consist of an x-coordinate and a y-coordinate, either onebeing an even coordinate and the other being an odd coordinate, orconsist of an odd x-coordinate and an odd y-coordinate.

The generating of the prediction block may include the steps ofcorrecting the main reference pixel using a difference between twopixels at positions corresponding to positions between the mainreference pixel among the restored pixels and the current pixel to bepredicted in the current block with respect to the intra predictiondirection and generating the prediction block using the corrected mainreference pixel.

In the correcting of the main reference pixel, the main reference pixelmay be corrected by adding the difference value to the main referencepixel or adding a value obtained by applying a weight to the differencevalue to the main reference pixel.

In the correcting of the main reference pixel, the main reference pixelmay be corrected only % en a pixel within a predetermined range amongthe current pixels is predicted.

In the correcting of the main reference pixel, when two or moredifference values are derived, the main reference pixel may be correctedusing an average of the two or more difference values or values derivedby applying a weight to each of the two or more difference values.

To achieve the above objective, another aspect of the present inventionprovides an encoding apparatus using intra prediction.

The decoding apparatus using intra prediction may comprise at least oneprocessor and a memory in which commands for instructing the at leastone processor to perform at least one operation are stored.

The at least one operation may include receiving a bit stream, obtainingdecoding information from the received bit stream, generating aprediction block for a current block to be decoded using the obtaineddecoding information and restoring the current block by adding aresidual block obtained from the bit stream to the prediction block.

In the generating of the prediction block, the prediction block for thecurrent block may be generated by generating a prediction value for eachpixel of the current block using at least one main reference blockselected from restored pixels belonging to a block adjacent to thecurrent block or belonging to at least one sub-block of the currentblock.

The main reference pixel may be a pixel located in an intra predictiondirection among the restored pixels.

The generating of the prediction block may include, when two or moremain reference pixels are located in the intra prediction direction, thegenerating of the prediction block for the current block using two mainreference pixels nearest to the current pixel, which are located aheadof and behind in the intra prediction direction with respect to thecurrent pixel to be predicted in the current block.

In the generating of the prediction block for the current block usingthe two main reference pixels nearest to the current pixel, theprediction block may be generated by using an average of the two mainreference pixels or the sum of values obtained by applying a weight toeach of the two main reference pixels as a prediction value of thecurrent pixel.

The at least one sub-block may be obtained by partitioning the currentblock using one of a quadtree scheme and a binary tree scheme, or isobtained by partitioning the current block using the quadtree scheme andthe binary tree scheme together.

The generating of the prediction block may include the steps ofcorrecting the main reference pixel using a difference between twopixels at positions corresponding to positions between the mainreference pixel among the restored pixels and the current pixel to bepredicted in the current block with respect to the intra predictiondirection and generating the prediction block using the corrected mainreference pixel.

In the correcting of the main reference pixel, the main reference pixelmay be corrected by adding the difference value to the main referencepixel or adding a value obtained by applying a weight to the differencevalue to the main reference pixel.

In the correcting of the main reference pixel, the main reference pixelmay be corrected only when a pixel within a predetermined range amongthe current pixels is predicted.

Advantageous Effects

When an encoding method and apparatus using intra prediction accordingto the present invention as described above are used, encoding anddecoding efficiency may be improved.

In addition, an image compression rate may be further improved.

DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram of an image encoding and decoding systemaccording to one embodiment of the present invention.

FIG. 2 is a block diagram illustrating an image encoding apparatusaccording to one embodiment of the present invention.

FIG. 3 is a configuration diagram illustrating an image decodingapparatus (30) according to one embodiment of the present invention.

FIG. 4 is an exemplary diagram for describing block partitioningaccording to one embodiment of the preset invention.

FIG. 5 is an exemplary diagram for describing quadtree type partitioningand binary tree type partitioning according to one embodiment of thepresent invention.

FIG. 6 is an exemplary diagram illustrating a form of a prediction blockobtained by partitioning a coding block according to one embodiment ofthe present invention.

FIG. 7 is an exemplary diagram illustrating an example in which aprediction block is partitioned from a coding block according to oneembodiment of the present invention.

FIG. 8 is an exemplary diagram for describing a split form of atransform block according to one embodiment of the present invention.

FIG. 9 is an exemplary diagram for describing a method in which atransform block is partitioned from a coding block according to oneembodiment of the present invention.

FIG. 10 is an exemplary diagram for describing an intra prediction modeperformed in HEVC.

FIG. 11 is an exemplary diagram for describing an intra prediction modeaccording to one embodiment of the present invention.

FIG. 12 is an exemplary diagram for describing reference pixelsapplicable to a horizontal or vertical mode according to one embodimentof the present invention.

FIG. 13 is an exemplary diagram for comparison between generalblock-based prediction and pixel-based prediction.

FIG. 14 is an exemplary diagram for describing a general intraprediction method.

FIG. 15 is an exemplary diagram for describing a process in whichtransformation and quantization are independently performed on aresidual block after intra prediction according to one embodiment of thepresent invention.

FIG. 16 is an exemplary diagram for describing dependent intraprediction with reference to an encoding-completed sub-block of acurrent block according to one embodiment of the present invention.

FIG. 17 is an exemplary diagram for describing a process of independenttransform and quantization of residual blocks of a current block, towhich binary partitioning is applied, according to one embodiment of thepresent invention.

FIG. 18 is an exemplary diagram for describing dependent intraprediction with reference to an encoding-completed sub-block of acurrent block, to which binary partitioning is applied, according to oneembodiment of the present invention.

FIG. 19 is an exemplary diagram for describing an intra predictionmethod employing pixel-based intra prediction according to oneembodiment of the present invention.

FIG. 20 is an exemplary diagram illustrating a block-based intraprediction method using a slope or difference value of reference pixelsaccording to one embodiment of the present invention.

FIG. 21 is an exemplary diagram for describing a method of predicting ahorizontally split sub-block in vertical mode intra prediction accordingto one embodiment of the present invention.

FIG. 22 is an exemplary diagram for describing a method of predicting avertically split sub-block in vertical mode intra prediction accordingto one embodiment of the present invention.

FIG. 23 is a first exemplary diagram for describing a method ofpredicting a sub-block split by a pixel line in vertical mode intraprediction according to one embodiment of the present invention.

FIG. 24 is a second exemplary diagram for describing a method ofpredicting a sub-block split by a pixel line in vertical mode intraprediction according to one embodiment of the present invention.

FIG. 25 is a first exemplary diagram for describing a method ofpredicting a sub-block split in a quadtree manner in vertical mode intraprediction according to one embodiment of the present invention.

FIG. 26 is a second exemplary diagram for describing a method ofpredicting a sub-block split in a quadtree manner in vertical mode intraprediction according to one embodiment of the present invention.

FIG. 27 is a second exemplary diagram for describing a method ofpredicting a sub-block split according to odd or even coordinates invertical mode intra prediction according to one embodiment of thepresent invention.

FIG. 28 is an exemplary diagram for describing a method of performingpredicting further using a slope or difference value of reference pixelsin diagonal mode intra prediction according to one embodiment of thepresent invention.

FIG. 29 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block horizontally split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

FIG. 30 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block horizontally split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

FIG. 31 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block vertically split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

FIG. 32 is a second exemplary diagram for describing a method ofperforming prediction on a sub-block vertically split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

FIG. 33 is a first exemplary diagram for describing a method ofpredicting a sub-block split by a pixel line in diagonal mode intraprediction according to one embodiment of the present invention.

FIG. 34 is a second exemplary embodiment for describing a method ofpredicting a sub-block split by a pixel line in diagonal mode intraprediction according to one embodiment of the present invention.

FIG. 35 is an exemplary diagram for describing a flag indicating, on atransform block unit basis, whether a coding coefficient is present orabsent.

FIG. 36 is a diagram illustrating examples of syntax with respect to aresidual block in HEVC.

FIG. 37 is an exemplary diagram for describing encoding of a codingcoefficient according to one embodiment of the present invention.

FIG. 38 is an exemplary diagram for describing coding coefficientsbefore a current coding coefficient and a coefficient for determining avalue of Equation 15.

FIG. 39 is a flowchart illustrating a decoding method using intraprediction according to one embodiment of the present invention.

FIG. 40 is a block diagram illustrating a decoding apparatus using intraprediction according to one embodiment of the present invention.

MODES OF THE INVENTION

Example embodiments of the present invention are disclosed herein.However, specific structural and functional details disclosed herein aremerely representative for purposes of describing example embodiments ofthe present invention, however, example embodiments of the presentinvention may be embodied in many alternate forms and should not beconstrued as limited to example embodiments of the present invention setforth herein.

Accordingly, while the invention is susceptible to various modificationsand alternative forms, specific embodiments thereof are shown by way ofexample in the drawings and will herein be described in detail. Itshould be understood, however, that there is no intent to limit theinvention to the particular forms disclosed, but on the contrary, theinvention is to cover all modifications, equivalents, and alternativesfalling within the spirit and scope of the invention. Like numbers referto like elements throughout the description of the figures.

It will be understood that, although the terms first, second, etc. maybe used herein to describe various elements, these elements should notbe limited by these terms. These terms are only used to distinguish oneelement from another. For example, a first element could be termed asecond element, and, similarly, a second element could be termed a firstelement, without departing from the scope of the present invention. Asused herein, the term “and/or” includes any and all combinations of oneor more of the associated listed items.

It will be understood that when an element is referred to as being“connected” or “coupled” to another element, it can be directlyconnected or coupled to the other element or intervening elements may bepresent. In contrast, when an element is referred to as being “directlyconnected” or “directly coupled” to another element, there are nointervening elements present. Other words used to describe therelationship between elements should be interpreted in a like fashion(i.e., “between” versus “directly between”, “adjacent” versus “directlyadjacent”, etc.).

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”.“comprising,”, “includes” and/or “including”, when used herein, specifythe presence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

Unless otherwise defined, all terms (including technical and scientificterms) used herein have the same meaning as commonly understood by oneof ordinary skill in the art to which this invention belongs. It will befurther understood that terms, such as those defined in commonly useddictionaries, should be interpreted as having a meaning that isconsistent with their meaning in the context of the relevant art andwill not be interpreted in an idealized or overly formal sense unlessexpressly so defined herein.

It should also be noted that in some alternative implementations, thefunctions/acts noted in the blocks may occur out of the order noted inthe flowcharts. For example, two blocks shown in succession may in factbe executed substantially concurrently or the blocks may sometimes beexecuted in the reverse order, depending upon the functionality/actsinvolved.

FIG. 1 is a conceptual diagram illustrating an image encoding/decodingsystem according to one embodiment of the present invention.

Referring to FIG. 1, an image encoding apparatus 105 and an imagedecoding apparatus 100 may be user terminals, such as personal computers(PCs), notebook computers, personal digital assistants (PDAs), portablemultimedia players (PMPs), PlayStation portables (PSPs), wirelesscommunication terminals, smartphones, TVs, or server terminals, such asapplication servers and service servers, or may include a communicationdevice, such as a communication modem, for communicating with variousdevices or wire/wireless communication networks and various devices eachincluding a memory 120 and 125 for storing a variety of programs anddata for inter- or intra-prediction in order to encode or decode animage, a processor 110 and 115 for operation and control by executingthe programs, and the like. An image encoded into a bit stream by theimage encoding apparatus 105 may be transmitted in real-time ornon-real-time to the image decoding apparatus 100 through awireless/wire communication network, such as the Internet, a short rangewireless communication network, a wireless local area network (LAN), aWibro network, a mobile communication network or the like, or throughvarious communication interfaces, such as a cable, a universal serialbus (USB), and the like, and the encoded image may be decoded in theimage decoding apparatus 100 and restored and reproduced as an image. Inaddition, the image encoded into a bit stream by the image encodingapparatus 105 may be transmitted to the image decoding apparatus 100from the image encoding apparatus 105 through a computer-readablerecording medium.

FIG. 2 is a block diagram illustrating an image encoding apparatusaccording to one embodiment of the present invention.

As shown in FIG. 2, the image encoding apparatus 20 according to thepresent embodiment may include a predictor 200, a subtractor 205, atransformer 210, a quantizer 215, an inverse quantizer 220, an inversetransformer 225, an adder 230, a filter 235, a decoded picture buffer240, and an entropy encoder 245.

The predictor 200 may perform prediction on a current block to beencoded in the image by intra prediction or inter-picture prediction.According to a predetermined optimal prediction mode of the intraprediction or the inter-picture prediction, a prediction block isgenerated, and at this time, the prediction mode may include intraprediction mode, motion-related information, and the like.

The subtractor 205 may subtract pixel values of the prediction blockfrom pixel values of the current block to be encoded and obtain pixeldifference values to generate a residual image block.

The transformer 210 may transform the residue block received from thesubtractor 205 and generate a transform block. That is, a residualsignal belonging to a space domain may be transformed into a residualtransformed signal belonging to a frequency domain. In this case, as atransform method, the Hadamard transform, discrete cosine transform(DCT)-based transform, discrete sine transform (DST)-based transform, orthe like may be used, but the transform method is not limited thereto,and various improved or modified schemes thereof may be used.

The quantizer 215 may generate a quantized transform block by quantizingthe transform block. That is, the residual transformed signal obtainedfrom the transformer may be quantized into a quantized residualtransformed signal. In this case, as a quantization method, the deadzone uniform threshold quantization (DZUTQ), the quantization weightedmatrix, or improved schemes thereof may be used.

The entropy encoder 245 may output a bit stream by encoding thequantized residual block. In this case, as an encoding method,context-adaptive variable length coding, context-adaptive binaryarithmetic coding, or the like may be used. In addition, a bit streamincluding additional information necessary for an encoding process maybe generated and output, and at this time, the additional informationmay include information about block partitioning, information on aprediction mode, transformation information, a quantization coefficient,and the like.

The inverse quantizer 220 and the inverse transformer 225 mayreconstruct a residual block by applying inverse-quantization andinverse-transform to the pixel signal, respectively. The reconstructedresidual block may be added to the prediction block in the adder 230 toform a reconstructed block, and the reconstructed block may be stored inthe decoded picture buffer 240 and accumulated in units of blocks orpictures, and then be transmitted to the predictor 200 and used as areference in the next block or next picture.

The filter 235 may apply a deblocking filter to the restored image blockto remove a blocking phenomenon if necessary, and may perform filteringby further applying a loop filter to improve the video quality.

FIG. 3 is a configuration diagram illustrating an image decodingapparatus 30 according to one embodiment of the present invention.

Referring to FIG. 3, the image decoding apparatus 30 may include anencoded picture buffer 300, an entropy decoder 305, a predictor 310, aninverse quantizer 315, an inverse transformer 320, an adder-subtractor325, a filter 330, and a decoded picture buffer 335.

In addition, the predictor 310 may include an intra prediction moduleand an inter-picture prediction module.

When an image bit stream transmitted from an image encoding apparatus 20is received, the image bit stream may be stored in the decoded picturebuffer 300.

The entropy decoder 305 may restore a quantized transform block from thebit stream. In addition, additional information necessary for a decodingprocess may be restored from the bit stream and the additionalinformation may be transmitted to the predictor 310, the inversequantizer 315, the inverse transformer 320, and the like.

The predictor 310 may generate a prediction block for a current block onthe basis of pieces of data received from the entropy decoder 305. Theprediction block may be generated based on a reference image stored inthe decoded picture buffer 335 and the restored prediction blockinformation, and the prediction block information may include predictionmode information, prediction block acquisition information (in thepresent example, the size and shape of a block and block splitinformation), and the like.

The inverse quantizer 315 may inverse quantize quantized transformationcoefficients provided in a bit stream and decoded by the entropy decoder305.

The inverse transformer 320 may generate a residual block by applying aninverse transform scheme to the quantized transformation coefficients.

In this case, the inverse quantizer 315 and the inverse transformer 320may inversely perform the processes performed by the transformer 210 andthe quantizer 215 of the image encoding apparatus 20 described above,and may be implemented by various methods. For example, the same processand inverse transform shared with the transformer 210 and the quantizer215 may be used, or inverse transform and inverse quantization may beperformed using information about a transformation and quantizationprocess (e.g., transformation size, transformation shape, quantizationtype, etc.) from the image encoding apparatus 20.

The residual block which has undergone the inverse quantization andinverse transform may be added to the prediction block generated by thepredictor 310 to form a restored image block. Such addition may beperformed by the adder-subtractor 325.

Then, the filter 300 may apply a deblocking filter on the restored imageblock to remove a blocking phenomenon if necessary, and may use otherloop filters before or after the decoding process to improve a videoquality.

The restored and filtered image block may be stored in the decodedpicture buffer 335.

Then, a block setter of the present invention will be described indetail.

The image encoding apparatus 20 and the image decoding apparatus 30 eachmay further include a block setter although not illustrated. The blocksetter may be set in association with each component of the imageencoding and decoding apparatuses, and the size and shape of the blockmay be determined through the process. In this case, the block to be setmay be defined differently according to the component. In the case ofthe predictor 200, the block to be set may be a prediction block and inthe case of the transformer 210, the block may be a transform block.That is, a block unit may be defined according to the component, and inthe present invention, the description will be given with focus on acoding block, a prediction block, and a transform block, but there is nolimitation thereto such that a block unit according to other componentsmay be further defined. The size and shape of the block may be definedby a width and height of the block.

The block setter may define the size and shape (in the present example,information related to a maximum value and a minimum value and the like)of the block unit. In addition, the block setter may define blockpartitioning settings (in the present example, partitioning scheme,split depth, and the like) for the block unit. A block having at leastone size and shape (in the present example, a square of an individualwidth/height or a rectangular form having at least one width-heightratio) obtainable from the block unit may be defined through theabove-described process. The defined settings as described above may bedetermined in units of, for example, a sequence, a picture, a slice, atile, or the like, may be included in a bit stream, and may be parsed bythe decoder to be restored as related information. This process may beperformed before the start of the encoding and decoding process. Inaddition, each image unit may have one setting or two or more settings,which may be determined according to one or a combination of two or morepieces of information, such as a slice type (I/P/B), a coding mode(intra/inter), a color component (Y/Cb/Cr), a temporal layer (temporalID), and the like. When two or more settings are applied, relatedinformation may be implicitly determined, or related information may beexplicitly generated.

Block information for determining an optimal block unit (in the presentexample, the size and shape of a block) among blocks having at least onesize and shape obtainable from the block unit may be generated accordingto the above-described definitions. Related information (in the presentexample, split flag, split index, and the like) may be generatedaccording to the definition in accordance with the block partitioningsetting (in the present example, partitioning scheme, split depth, andthe like). The block split information may be determined in units of ablock and included in a bit stream, and may be parsed by the decoder andrestored as related information. The block split information may bedetermined before the start of operations of components in the processof encoding and decoding. When there is only one block obtainable basedon the above-described definition and a state of a current block unit(in the present example, a size and shape of a block before or duringsplitting), block split information may be implicitly determined (in thepresent example, a size and shape of a block after splitting) and whenthere are two or more blocks obtainable, block split information may beexplicitly generated. For example, one of the implicit and explicitmethods may be determined by considering information, such as a maximumblock size, a minimum block size, a depth, a size of a current block,and the like in a corresponding block unit.

In addition, the same splitting setting or a different splitting settingmay be applied according to the block unit. For example, in the codingblock and the prediction block, the same partitioning scheme (in thepresent example, partitioning based on a tree structure is performed,specifically, a quadtree scheme) may be used, and the same allowablesplit depth may be used. Alternatively, in the prediction block and thetransform block, different partitioning schemes (in the present example,partitioning based on index selection is performed on the predictionblock and partitioning based on a tree structure, specifically, aquadtree scheme, is performed on the transform block) may be used, ordifferent hierarchical partitioning schemes (in the present example,partitioning based on index selection is performed on the predictionblock within a single layer and partitioning based on a tree structureis performed on the transform block in multiple layers with a splitdepth of 1 or greater) may be used. Alternatively, differentpartitioning schemes (in the present example, partitioning based on atree structure is performed in which a quadtree scheme and a binary treescheme are used for the coding block and a quadtree scheme is used forthe transform block) may be used in the coding block and the transformblock, and the same allowable split depth may be used.

The split depth in the block partitioning setting may indicate thenumber of times of spatially splitting a block unit with respect to aninitial block (in the present example, a depth of the initial block is0), and as the depth increases, the block unit may be split into smallerblocks. The depth-related setting may be altered according to thepartitioning scheme. For example, in the partitioning schemes based on atree structure, a quadtree scheme and a binary tree scheme may use onecommon depth or may use individual depths.

A size and shape of an initial block (in the present example, a blockbefore splitting) of a sub-block unit may be determined according to asplitting result of an upper block unit, which may affect the generationof splitting-related information (in the present example, blockinformation after splitting). A coding block may be an upper unit of aprediction block and a transform block, and a prediction block may be ormay not be an upper unit of a transform block. This may be determinedaccording to an encoding setting. For example, when the coding mode isintra mode, a prediction block may be an upper unit of a transformblock, and when the coding mode is inter mode, a prediction block may bea unit independent of a transform block.

In addition, one or more block units may be combined to share onepartitioning scheme. For example, when a coding block and a predictionblock are combined into one unit, one optimal block (in the presentexample, one block size and shape) obtained through splitting may beobtainable, which may be a basic unit (in the present example, a unit onwhich additional splitting is not performed) for encoding andprediction. Alternatively, when a coding block and a transform block arecombined into one unit, one optimal block may be obtainable, which maybe a basic unit for encoding and transformation. Alternatively, when acoding block, a prediction block, and a transform block are combinedinto one unit, one optimal block may be obtainable, which may be a basicunit for encoding, prediction, and transformation, be optimal block maybe determined according to one or a combination of two or more pieces ofinformation, such as a slice type, a coding mode, a color component, andthe like.

Although the present invention is described with a focus on a case inwhich each block unit is individual, it is possible to apply the presentinvention to other block units and it is also possible to apply amodification of the present invention to an integrated case of two ormore block units.

FIG. 4 is an exemplary diagram for describing block partitioningaccording to one embodiment of the preset invention.

Referring to FIG. 4, as a method of partitioning a coding block, a splitform according to a tree structure will be described.

In the present invention, splitting according to a quadtree scheme andsplitting according to a binary tree scheme will be described asexamples of splitting according to a tree structure, but the presentinvention is not limited thereto and improved and modified partitioningmethods thereof may be used.

First, in the case of high efficiency video coding (HEVC) in which aquadtree scheme is used to obtain a coding block, obtainable codingblocks may be block 4 a (not split) and block 4 d (split into 2 smallerparts in each of the horizontal and vertical directions). Meanwhile,coding blocks obtainable when a binary scheme is used may be block types4 a and 4 b (horizontally split into 2 smaller parts), and block 4 c(vertically split into 2 smaller parts), and obtainable coding blockswhen the two schemes are used together may be block types 4 a, 4 b, 4 c,and 4 d. In the case of a quadtree scheme, one split flag in associationwith partitioning is supported. When a corresponding flag is 0, thecoding block may have block type 4 a, and when a corresponding flag is1, the coding block may have block type 4 d. In the case of the binarytree scheme, one or more split flags are supported, wherein one of themmay indicate whether a block is split, another flag may indicate whethera block is horizontally/vertically split, and still another flag mayindicate whether horizontal/vertical splits are combined.

L1 (horizontal split) and L2 (vertical split) may be lines definingboundaries between blocks when binary tree partitioning is performed,and L3 and L4 may be lines defining boundaries between blocks whenquadtree partitioning is performed. According to the partitioning schemeand settings, L3 and L4 may be boundary lines, like L1 and L2, in thebinary tree partitioning, such as a horizontal partitioning and avertical partitioning. Under a setting in which overlapping betweenboundary lines L3 and L4 is allowed, quadtree partitioning may beperformed with boundaries L3 and L4. In another example, under a settingin which boundary lines L3 and L4 are not allowed to overlap, obtainablecoding blocks may be blocks 4 a, 4 b, and 4 c, and under the setting inwhich the boundary lines L3 and L4 are allowed to overlap, obtainablecoding blocks may be blocks 4 a, 4 b, 4 c, and 4 d.

Therefore, when the coding blocks before splitting are square-shaped(M×M) as in blocks 4 a to 4 d, split blocks, such as M×M/2, M/2×M,M/2×M/2, and the like, may be obtained.

When a coding block before splitting is a rectangular block (M×N), splitblocks, such as M×N/2, M/2×N, M/2×N/2, and the like, may be obtained.According to a width-height ratio and depth of the coding block, codingblocks with width-height ratios, such as M×N/4, M×N/8, M/4×N, M/8×N,M/2×N/4, M/4×N/2, and the like, may be obtained.

In addition, in the above example, an additional split block (e.g., aform with a width-height ratio different from the above example) may beobtained through the quadtree scheme, the binary tree scheme, andmodified methods thereof.

Although the split form with a size of M×M is described in the exampleaccording to FIG. 4, obtainable coding blocks may vary depending on amaximum size of a coding block, a minimum size of a coding block, anallowable depth, a partitioning scheme, a coding mode, a slice type, andthe like. Even when a block of a maximum coding unit is in an M×M squareform, obtainable coding blocks may be in an M×N rectangular form, suchas 2M×M and M×2M (in the above example), according to the partitioningscheme used.

FIG. 5 is an exemplary diagram for describing quadtree type partitioningand binary tree type partitioning according to one embodiment of thepresent invention.

Referring to FIG. 5, a bold solid line L0 represents a maximum codingblock, blocks split by lines L1 to L5, other than the bold solid line,may represent split coding blocks, and figures inside the blocksrepresent positions of split sub-blocks (in the present example, inaccordance with a raster scan order), the number of “-” represents asplit depth of a corresponding block, and the number of boundary linesbetween blocks represents the number of splits. For example, in the caseof quad-split partitioning (in the present example, a quadtree scheme),an order of UL(0)-UR(1)-DL(2)-DR(3) may be provided, and in the case ofbinary-split partitioning (in the present example, a binary treescheme), an order of L or U (0)-R or D (1) may be provided, which may bedefined in each depth.

Meanwhile, obtainable coding blocks may be limited according to variousfactors.

In one example, it is assumed that a maximum coding block in FIG. 5a isa 64×64 block, a minimum coding block is a 16×16 block, and quadtreepartitioning is used. In this case, blocks 2-0, 2-1, and 2-2 (in thepresent example, a size of 16×16) have the same size as the minimumcoding block, and thus they may not be split into smaller blocks asblocks 2-3-0, 2-3-1, 2-3-2, and 2-3-3 (in the present example, a size of8×8). In this case, a block obtainable from blocks 2-0, 2-1, 2-2, and2-3 is a 16×16 block, that is, there is only one set of candidates, sothat block split information is not generated.

In one example, it is assumed that a maximum coding block of 5 b is a64×64 block, a minimum coding block is 8 in width or height, and anallowable depth is 3. In this case, since block 1-0-1-1 (in the presentexample, a size of 16×16 and a depth of 3) satisfies requirements for aminimum coding block, it may be split into smaller blocks. However,since the depth of the block 1-0-1-1 is identical to the allowabledepth, the block may not be split into blocks of a greater depth (in thepresent example, blocks 1-0-1-0-0 and 1-0-1-0-1). In this case, a blockobtainable from the blocks 1-0-1-0 and 1-0-1-1 is a 16×8 block, that is,only one set of candidates is available, so that block split informationis not generated.

As described above, the quadtree type partitioning or the binary treetype partitioning may be supported according to the encoding settings.Alternatively, a combination of the quadtree type partitioning and thebinary tree type partitioning may be supported. For example, one or acombination of the above schemes may be supported according to a size,depth, or the like of a block. When a block falls within a first blockrange from Min_Q to Max_Q, the quadtree scheme may be supported, andwhen a block falls within a second block range from Min_B to Max_B, thebinary tree scheme may be supported. When one or more partitioningschemes are supported, one or more of settings, such as a maximum sizeof a coding block, a minimum size of a coding block, an allowable depth,and the like, may be provided according to the available method. Theabove ranges may or may not be set to overlap each other. Alternatively,one range may be set to include another range. The settings for theranges may be determined according to an individual or a combination offactors, such as a slice type, a coding mode, a color component, and thelike.

In one example, a block partitioning setting may be determined accordingto a slice type. In the case of an I-slice, a supported blockpartitioning setting of a quadtree scheme may support splitting within arange between 128×128 and 32×32 and a block partitioning setting of abinary tree scheme may support splitting within a range between 32×32and 8×8. In the case of a P/B-slice, a supported block partitioningsetting of a quadtree scheme may support splitting within a rangebetween 128×128 and 32×32 and a block partitioning setting of a binarytree scheme may support splitting within a range between 64×64 and 8×8.

In one example, the block partitioning setting may be determinedaccording to a coding mode. In the case of intra mode, a supported blockpartitioning setting of a binary tree scheme may support splittingwithin a range between 64×64 and 8×8 and an allowable depth of 2. In thecase of inter mode, a supported block partitioning setting of a binarytree scheme may support splitting within a range between 32×32 and 8×8and an allowable depth of 3.

In one example, the block partitioning setting may be determinedaccording to a color component. In the case of a luminance component,for the quadtree scheme, partitioning within a range between 256×256 and64×64 may be supported, and for the binary tree scheme, partitioningwithin a range between 64×64 and 16×16 may be supported. In the case ofa chrominance component, for the quadtree scheme, the same settings asthose for the brightness component (in the present example, a setting inwhich lengths of each block are proportional to each other according toa chrominance format) may be supported, and for the binary tree scheme,partitioning within a range between 64×64 and 4×4 (in the presentexample, assuming that a range for the same luminance component isbetween 128×128 and 8×8 in 4-2:0 format) may be supported.

FIG. 6 is an exemplary diagram illustrating a form of a prediction blockobtained by partitioning a coding block according to one embodiment ofthe present invention.

As a method of partitioning into a prediction block, a block split formhaving one or more sets of candidates may be supported in a single layer(in the present example, one depth of 0), and block partitioning may besupported with additional support for a depth. When partitioning intoprediction blocks in a single layer is supported, index information maybe generated through various binarization processes on two or more blocksplit forms to represent information on block split forms, and whenpartitioning into prediction blocks in multiple layers is supported,information about a split flag is generated according to thepartitioning scheme (in the present example, quadtree scheme, binarytree scheme, or the like) to represent information about the block splitforms. In partitioning into prediction blocks according to the presentinvention, a description will be given of a method of representinginformation about block split forms by generating index information ontwo or more block forms in a single layer.

FIG. 6 illustrates examples of a block split form obtainable from asingle layer. Although a coding block is a square block in FIG. 6, arectangular coding block may also be applied by changing a width-heightratio thereof to the same ratio shown in FIG. 6.

It may be possible to set some in a set of candidates in FIG. 6 as a setof prediction block candidates according to encoding settings. In thecase of HEVC, when the coding mode is intra prediction, block types 6 aand 6 h may be included in a set of prediction block form candidates. Inthe case of inter-picture prediction, block types 6 a, 6 b, 6 c, and 6 dmay be included in a set of candidates. In a setting that includes a setof unequal split candidates, block types 6 a to 6 h may be included inthe set of candidates.

FIG. 7 is an exemplary diagram illustrating an example in which aprediction block is partitioned from a coding block according to oneembodiment of the present invention.

Referring to FIG. 7, a solid line represent a coding block, and a blockdefined by a solid line and a dotted line represents a prediction block.The numbers in the blocks represent positions of the prediction blocks(in the present example, in accordance with a raster scan order) splitfrom each coding block.

Reference numeral 7 a represents an example in which a square codingblock is obtained through quadtree partitioning and a prediction blockis obtained from a coding block, and reference numeral 7 b represents anexample in which a rectangular coding block is obtained through a binarytree partitioning and a prediction block is obtained from the codingblock. Alternatively, in 7 a, a quadtree scheme or a binary tree schememay be used to obtain a prediction block partitioned from the codingblock, and in 7 b, a quadtree scheme or a binary tree scheme may be usedto partition the coding block into the prediction blocks.

Assuming that supported prediction block forms are block types 6 a, 6 b,6 c, and 6 h of FIG. 6, prediction blocks to be obtained from a squarecoding block may be M×M, M×M/2, M/2×M, and M/2×M/2 blocks, andprediction blocks to be obtained from a rectangular coding block may beM×N, M×N/2, M/2×N, and M/2×N/2 blocks. The prediction block obtainedfrom the square coding block may have a width-height ratio orheight-width ratio of 1:1 or 1:2, whereas the prediction blocks obtainedfrom a rectangular coding block may have a ratio of 1:1 to 1:k accordingto the width-height ratio or height-width ratio of the coding block. Inthis case, k may be determined according to a maximum size of a codingblock, a minimum size of a coding block, an allowable depth, a form of aprediction block, a prediction block partitioning scheme, and the like.

A split form or partitioning scheme of a prediction block may be setdifferently according to a partitioning scheme of a coding block.Alternatively, a split form or partitioning scheme of a prediction blockmay be set differently according to whether a coding block prior topartitioning of a prediction block is square shaped or rectangularshaped. Alternatively, a split form or a partitioning scheme of aprediction block may be set differently according to a coding mode.Alternatively, a split form or partitioning scheme of a prediction blockmay be set differently according to a size or depth of a coding block.

In one example, when a coding block is partitioned by a quadtree schemeor a coding block is square shaped, some in a set of candidatesincluding block types 6 a to 6 h of FIG. 6 and other additional splitforms may be included in split forms of the prediction block.Alternatively, split forms of block types 6 a, 6 b, and 6 c of FIG. 6may be included by partitioning a coding block using a quadtree scheme.

In one example, when a coding block is partitioned using a binary treescheme or a coding block is square shaped, block type 6 a may beincluded in a split form (M×N) of a prediction block. Alternatively, aspilt form (M×N) of block type 6 a may be included by partitioning aprediction block using a binary tree scheme. This may imply that furtherpartitioning is not supported in a prediction block unit. This may implythat partitioning in a prediction unit is not separately supported sincea coding block of a rectangular form, in addition to a coding block of asquare form, can be obtained in the process of obtaining a coding block.In the present example, a coding block and a prediction block arecombined to share one partitioning scheme, and information about a splitform of a prediction block may not be generated.

In one example, when a coding block is a rectangular block, the codingmode is intra mode, and a square prediction block is supported as aprediction block in intra prediction, a prediction block may bepartitioned with respect to a width or height of the coding block whichis shorter than the other. When the coding block is a 2M×M block and acoding mode is intra mode, the prediction block may be split into twoM×M blocks. In this case, information on splitting may not be generated.

In one example, when a coding block is a rectangular block, a codingmode is intra mode, and a square block and a rectangular block aresupported as intra prediction blocks, some in a set of candidatesincluding block types 6 a to 6 h and other additional split forms may beincluded in split forms of a prediction block. Alternatively, splitforms of block types 6 a and 6 h of FIG. 6 may be included bypartitioning a prediction block using a quadtree scheme.

In one example, when a coding block is a square block, a coding mode isintra mode, and a square block and a rectangular block are supported asintra-prediction blocks, some in a set of candidates including blocktypes 6 a to 6 h of FIG. 6 and other additional split forms may beincluded in split forms of a prediction block. Alternatively, splitforms of block types 6 a, 6 b, and 6 c of FIG. 6 may be included bypartitioning a prediction block using a binary tree scheme.

In one example, when a coding block is within a first block range (Min1to Max1), some (candidate set 1) in a set of candidates including blocktypes 6 a to 6 h of FIG. 6 and other additional block forms may beincluded in split forms of a prediction block. When the coding block iswithin a second block range (Min2 to Max2), some (candidate set 2) in aset of candidates including block types 6 a to 6 h of FIG. 6 and otheradditional block forms may be included in split forms of a predictionblock.

A maximum size of a prediction block may be the same as or smaller thana maximum size of a coding block and a minimum size of a predictionblock may be the same as or smaller than a minimum size of a codingblock. Accordingly, split forms of the prediction block may be limitedlysupported.

In one example, assuming that a maximum size of a coding block is 64×64,a current coding block is a 64×64 block, a maximum size of a predictionblock is 32×32, and sets of supportable prediction block candidates areM×N (with respect to a coding block), M×N/2, M/2×N, and M/2×N/2,prediction block candidates may be 64×64, 64×32, 32×64, and 32×32blocks. Among these candidates, a 32×32 block may be a supportablecandidate and split information may be implicitly determined as 32×32without generating information on prediction block candidates.

In one example, when a minimum size of a coding block is 8×8, a currentcoding block is a 16×8 block, a minimum size of a prediction block is8×8, and sets of supportable prediction block candidates are M×N (withrespect to a coding block), M×N/2, M/2×N, and M/2×N/2, the predictionblock candidates may be 16×8, 16×4, 8×8, and 8×4 blocks. Since some ofthe prediction block candidates are smaller than the minimum size of aprediction block, 16×8 and 8×8 blocks, excluding the smaller blocks, maybe included in the set of prediction block candidates, and indexinformation may be generated through binarization using the candidates.

FIG. 8 is a diagram for describing a split form of a transform blockaccording to one embodiment of the present invention.

A transform block is a basic unit of transformation and may have one ormore block forms through partitioning of a coding block. Alternatively,a transform block may have one or more block forms through partitioningof a prediction block.

In the case of HEVC, a transform block may be partitioned from a codingblock using a quadtree scheme, and one or more square transform blocksmay be obtained according to a minimum size of a transform block, anallowable depth, and the like.

In the case in which a rectangular transform block is constructed inaddition to a square transform block, a supportable size of a transformblock and a shape of a transform block may be determined according tosettings of an encoder.

Referring to FIG. 8, in the case of HEVC in which a quadtree scheme isused as a method of obtaining a transform block, obtainable transformblocks may be block types 8 a and 8 d (in the present example, withreference to one depth). Transform blocks obtainable when a binary treescheme is used may be block types 8 a, 8 b, and 8 c, and transformblocks obtainable when the two schemes are used together may be blocktypes 8 a, 8 b, 8 c, and 8 d. In the case of a quadtree scheme, a splitflag associated with partitioning is supported, and when a correspondingflag is 1, block type 8 a is exhibited, and when the corresponding flagis 0, block type 8 d is exhibited. In the case of a binary tree scheme,one or more split flags are supported, wherein one flag of them mayindicate whether a block is split, another flag may indicate whether ablock is horizontally/vertically split, and still another flag mayindicate whether horizontal/vertical splits are combined.

When a coding block prior to partitioning is a square block (M×M) as inthe above example, transform blocks, such as M×M/2, M/2×M, and M/2×M/2blocks, may be obtained.

When a coding block prior to partitioning is a rectangular block (M×N),transform blocks, such as M×N/2, M/2×N, and M/2×N/2 blocks, may beobtained. According to a width-height ratio and depth of the codingblock, transform blocks having a width-height ratio, such as M×N/4,M×N/8, M/4×N, M/8×N, M/2×N/4, and M/4×N/2, may be obtained.

Here, additional transform blocks (for example, a block with awidth/height ratio different from that in the above example) may beobtained through a quadtree scheme, a binary tree scheme, and otherschemes modified therefrom.

Transform blocks in various sizes and forms may be obtained according toa maximum size of a transform block, a minimum size of a transformblock, an allowable depth, and a partitioning method in accordance withsettings of an encoder. In this case, a depth may be checked withreference to a coding block (in the present example, a depth in thecoding block is 0), and when the depth is increased, a coding block ispartitioned into smaller transform units and may be partitioned up tothe minimum transform units.

FIG. 9 is a diagram for describing a method in which a transform blockis partitioned from a coding block according to one embodiment of thepresent invention.

Referring to FIG. 9, reference numerals 9 a and 9 b denote transformblocks split from a coding block by solid lines or dotted lines, and anumber is assigned to each block to indicate each transform block.

In the case of transform block 9 a, a coding block is partitioned usinga quadtree scheme, and in the case of transform block 9 b, a codingblock is partitioned using a binary tree scheme. Assuming that thetransform blocks 9 a and 9 b have forms obtained by using a quadtreescheme together with a binary tree scheme, block types 8 a, 8 b, 8 c,and 8 d of FIG. 8 may be assumed to be obtainable transform blocks. Inaddition, in the present example, it is assumed that the coding blockhas a split form shown in FIG. 7 and FIG. 9 and FIG. 7 illustrateexamples of partitioning of a transform unit and partitioning of aprediction unit.

In transform block 9 a, block 4 is a square coding block partitioned bya quadtree scheme and indicates a transform block in the same form asblock type 8 a of FIG. 8 which is not split at a depth of 0, and a blockformed by a combination of blocks 1, 2, and 3 is a square coding blockpartitioned using a quadtree scheme, blocks 1 and 2 indicate transformblocks in the same form as block type 8 c of FIG. 8 which is split at adepth of 1, and block 3 indicates a transform block in the same form asblock type 8 b of FIG. 8 which is split at a depth of 0. When block 4(transform block) is compared with blocks 0 and 1 (prediction blocks)located at the same positions in 7 a of FIG. 7 as block 4, unlike 7 a inwhich blocks 0 and 1 are split, block 4 in 8 a is not split, so thatthere is no influence between the prediction block and the transformblock. However, when blocks 1 to 3 (transform blocks) are compared withblocks 0 and 1 (prediction blocks) at the same positions in 7 a of FIG.7 as block 1 to 3, it can be seen that split forms of prediction blocksof 7 a affect split forms of blocks 1 to 3. That is, whetherpartitioning of a transform block and partitioning of a prediction blockare performed independently of each other, or dependent on each othermay be determined according to settings of an encoder.

A split form of a transform block may be set differently according to apartitioning scheme of a coding block. Alternatively, a split form of atransform block may be set differently according to whether a codingblock prior to partitioning of a transform block is square shaped orrectangular shaped. Alternatively, a split form of a transform block maybe set differently according to a coding mode. Alternatively, a splitform of a transform block may be set differently according to a size ordepth of a transform block.

In one example, when a coding block is partitioned using a quadtreescheme or when a coding block is a square block and a square block issupported as a transform block, split forms of a transform block in aquadtree scheme, as shown in block types 8 a and 8 d of FIG. 8, may beincluded. When a block is split into two or more blocks as shown inblock type 8 d, further partitioning using a quadtree scheme may befeasible according to a depth.

In one example, when a coding block is partitioned using a quadtreescheme, or when a coding block is a square block and a rectangular formand a square form are supported as transform blocks, split forms oftransform blocks in a binary tree scheme, as shown in block types 8 a, 8b, and 8 c of FIG. 8, may be included. When a coding block is split intotwo or more blocks, block types such as 8 a, 8 b, and 8 c of FIG. 8, maybe included. When the coding block is split into two or more blocks asshown in block types 8 b and 8 c, further binary tree-type partitioningmay be possible according to a depth.

In one example, when a coding block is partitioned using a binary treescheme, or when the coding block is a square block and a square block issupported as a transform block, split forms of transform blocks in abinary tree scheme, as shown in block types 8 b and 8 c of FIG. 8, maybe included. That is, the transform block may be partitioned withrespect to a width or height of a block that is shorter than the other.For example, in a case of a 2N×N coding block, in block type 8 c, twoN×N transform blocks are obtainable, whereas in block type 8 b, two2N×N/2 transform blocks are obtained, which does not satisfy a conditionthat supports a square transform block, and thus such split forms may beexcluded from transform block partition candidates. In this case, atransform block split flag of a binary tree scheme may be omittedbecause block type 8 c is the only candidate. In another example, in acase of an N×4N coding block, it is difficult to obtain square transformblocks through a block type 8 b or 8 c. In this case, the coding blockis partitioned into two N×2N transform blocks through block type 8 b ata depth of 0 and each of the two N×2N transform blocks is split into twoN×N transform blocks at an each depth of 1, so that the coding block canbe partitioned into a total of 4 N×N transform blocks. In this case, atransform block split flag may also be omitted because block type 8 b isan only split flag candidate at each depth.

In one example, when a coding block is partitioned using a binary treescheme, or when a coding block is a square block, block type 8 a of FIG.8 may be included in a split form (M×N) of a transform block. This mayimply that further partitioning in a transform block unit is notsupported. This implies that a transform block split flag may beomitted.

Quadtree type partitioning or binary tree type partitioning may besupported according to an encoding setting. Alternatively, a combinationof the quadtree type partitioning and the binary tree type partitioningmay be supported. For example, one or a combination of the above schemesmay be supported according to a size, depth, or the like of a block.When a block falls within a first block range from Min_Q to Max_Q, thequadtree scheme may be supported, and when a block falls within a secondblock range from Min_B to Max_B, the binary tree scheme may besupported. When one or more partitioning schemes are supported, one ormore of settings, such as a maximum size of a transform block, a minimumsize of a transform block, an allowable depth, and the like, may beprovided according to the available method. The above ranges may or maynot be set to overlap each other. Alternatively, one range may be set toinclude another range. The settings for the ranges may be determinedaccording to the individual or combined factors, such as a slice type, acoding mode, a color component, and the like.

In one example, a block splitting setting may be determined according toa slice type. In the case of an I-slice, a supported block splittingsetting of a quadtree scheme may support splitting within a rangebetween 64×64 and 16×16 and a block splitting setting of a binary treescheme may support splitting within a range between 16×16 and 4×4. Inthe case of a P-slice, a supported block splitting setting of a quadtreescheme may support splitting within a range between 64×64 and 16×16 anda block splitting setting of a binary tree scheme may support splittingwithin a range between 32×32 and 4×4.

In one example, the block splitting setting may be determined accordingto a coding mode. In the case of an intra mode, a supported blocksplitting setting of a binary tree scheme may support splitting within arange between 16×16 and 4×4 and an allowable depth of 3. In the case ofinter mode, a supported block splitting setting of a binary tree schememay support splitting within a range between 32×32 and 4×4 and anallowable depth of 4.

In one example, the block splitting setting may be determined accordingto a color component. In the case of a luminance component, for thequadtree scheme, partitioning within a range between 64×64 and 8×8 maybe supported, and for the binary tree scheme, partitioning within arange between 32×32 and 8×8 may be supported. In the case of achrominance component, for the quadtree scheme, the same settings asthose for the brightness component (in the present example, a setting inwhich lengths of each block are proportional to each other according toa chrominance format) may be supported, and for the binary tree scheme,partitioning within a range between 8×8 and 4×4 may be supported.

In addition, a square transform block or a rectangular transform blockmay be supported according to an encoding setting. Alternatively, acombination of the square transform block and a rectangular transformblock may be supported. For example, one or a combination of the aboveforms of transform blocks may be supported according to a size, depth,or the like of a block. When a block falls within a first block rangefrom Min_S to Max_S, the square form may be supported, and when a blockfalls within a second block range from Min_R to Max_R, the rectangularform may be supported. When one or more partitioning schemes aresupported, one or more of settings, such as a maximum size of atransform block, a minimum size of a transform block, an allowabledepth, and the like, may be provided according to the available method.The above ranges may or may not be set to overlap each other. Thesettings for the ranges may be determined according to the individual orcombined factors, such as a slice type, a coding mode, a colorcomponent, and the like.

A maximum size of a transform block may be the same as or smaller than amaximum size of a coding block and a minimum size of a transform blockmay be the same as or smaller than a minimum size of a coding block.Accordingly, split forms of the transform block may be limitedlysupported.

In one example, assuming that a maximum size of a coding block is 64×64,a current coding block is a 64×64 block, a maximum size of a transformblock is 32×32, and supportable transform block candidates are 32×32,32×16, 16×32, and 16×16 blocks, and sets of candidates are block types 8a, 8 b, 8 c, and 8 d of FIG. 8 in which a binary tree scheme and aquadtree scheme are used together as supported transform blockpartitioning methods, block types 8 a, 8 b, and 8 c may be excluded fromsplitting candidates at a depth of 0. In the case of block type 8 awhich is not split, no transform block is supported. In the case ofblock types 8 b and 8 c, sets of transform block partition candidatessupported when 64×32 and 32×64 blocks obtained by splitting are furtherpartitioned may be 64×32(a), 32×32(b), 64×16(c), and 32×16(d)(in thecase of a 64×32 block). In this case, 64×32 and 64×16 blocks may stillnot be supported at a depth of 1. On the other hand, sets of transformblock partition candidates supported when block type 8 d of FIG. 8 issplit at a depth of 1 may be 32×32(a), 32×16(b), 16×32(c), and 16×16(d),and all sets of transform block candidates may be supported at a depthof 1.

In one example, assuming that a current coding block is a 16×8 block, aminimum size of a transform block is 4×4, and supportable transformblock candidates are 16×16, 164, 8×16, 8×8, 8×4, 48, and 4×4 blocks, anallowable depth is 2, and sets of candidates are block types 8 a, 8 b, 8c, and 8 d of FIG. 8 in which a binary tree scheme and a quadtree schemeare used together as supported transform block partitioning methods,sets of transform block partition candidates supported at a depth of 0may be 16×8(a), 16×4(b), 8×8(c), and 8×4(d). In this case, a 16×4 blockis not a supported transform block, and hence 16×8, 8×8, and 8×4 blocks,excluding a 16×4 block, may be included in a set of transform blockcandidates, and split information may be generated through binarizationusing the candidates.

Hereinafter, a transformer of the present invention will be described indetail.

The transformer may use various schemes, such as the Hadamard transform,DCT-based transform, DST-based transform, and the like, as a transformmethod. At least one of the above-mentioned schemes may be supported andat least one detailed transform scheme of each transform scheme may besupported. In this case, the at least one detailed transform scheme maybe a transform scheme in which a part of a base vector in each transformscheme is differently configured. For example, a DCT-based transform andDST-based transform may be supported as transform schemes, and in thecase of a DCT-based transform, detailed transform schemes, such asDCT-I, DCT-II, DCT-III, DCT-V, and DCT-VI, may be supported.

One (one transform scheme && one detailed transform scheme) of theabove-mentioned transform schemes may be set as a basic transform schemeand an additional transform scheme (two or more transform schemes two ormore detailed transform schemes) may be supported. Whether an additionaltransform scheme is supported may be determined on a unit-by-unit basis,such as a sequence, a picture, a slice, a tile, or the like, and relatedinformation may be generated on such a unit-by-unit basis.

Transformation may be performed in horizontal and vertical directions.For example, a one-dimensional transform may be performed in ahorizontal direction using a base vector of transformation and aone-dimensional transform may be performed in a vertical direction,thereby performing a two-dimensional transform in total, so that a pixelvalue of a spatial axis may be transformed into a frequency axis.

In addition, transforms in horizontal and vertical directions may beadaptively applied. For example, in intra prediction, when a predictionmode is a horizontal mode, DCT-I may be used in a horizontal directionand DST-I may be used in a vertical direction. In the case of a verticalmode, DST-II may be used in a horizontal direction and DCT-I may be usedin a vertical direction. In the case of a diagonal down left mode, DCT-Imay be used in a horizontal direction and DCT-II may be used in avertical direction. In the case of a diagonal down right mode, DST-I maybe used in a horizontal direction and DST-II may be used in a verticaldirection.

According to an encoding setting, a rectangular transform may be furthersupported in addition to a square transform. Various cases when squareand rectangular transforms are supported have been described withreference to the transform block partitioning process.

The square transform among the above transform shapes may be set as abasic transform shape, and an additional transform shape (in the presentexample, a rectangular shape) may be supported. Whether an additionaltransform shape is supported may be determined on a unit-by-unit basis,such as a sequence, a picture, a slice, a tile, or the like, and relatedinformation may be generated on such a unit-by-unit basis.

Support for a transform block form may be determined according toencoding information. Here, the encoding information may be a slicetype, a coding mode, a size and shape of a block, a block partitioningscheme, and the like. One transform shape may be supported according toat least one piece of encoding information and two or more transformshapes may be supported according to at least one piece of encodinginformation. The former may be an implicit case and the latter may be anexplicit case. In the explicit case, adaptive selection informationindicating an optimal set of candidates among two or more sets ofcandidates may be generated and included in a bit stream.

In one example, support for a rectangular transform may be determinedaccording to a slice type. In the case of an I-slice, a supportedtransform shape may be a square shape, and in the case of a P/B slice, asquare or rectangular transform may be supported.

In one example, support for a rectangular transform may be determinedaccording to a coding mode. In the case of intra mode, a supportedtransform shape may be a square shape, and in the case of inter mode, asupported transform shape may be a rectangular or square shape.

In one example, support for a rectangular transform may be determinedaccording to a size and shape of a block. A transform shape supported ina block of a certain size or greater may be a square shape, and atransform shape supported in a block of a size smaller than the certainsize may be a rectangular shape or a square shape.

In one example, support for a rectangular transform may be determinedaccording to a block partitioning scheme. In a case where a block inwhich a transform is performed is a block obtained through a quadtreepartitioning scheme, a supported transform shape may be a square shape,and in a case of a block obtained through a binary tree partitioningscheme, a supported transform shape may be a square shape or arectangular shape.

The above examples are directed to transform shape support in accordancewith one piece of encoding information, and two or more pieces ofinformation may be combined to be involved in setting of additionaltransform shape support. The above examples are merely examples ofadditional transform shape support in accordance with various encodingsettings, and the additional transform shape support is not limited tothe above examples, such that various modified examples are possible.

A transform process may be omitted depending on the encoding settings ora feature of an image. For example, the transform process may be omittedaccording to a quantization parameter (in the present example, QP=0 in alossless compression environment). In another example, the transformprocess may be omitted when compression performance through a transformis not achieved due to a feature of an image. In this case, a transformto be omitted may be all units, or a transform on one of horizontal andvertical units may be omitted. Whether the omission is supported may bedetermined according to a size and shape of a block.

For example, in a setting in which joint omission of a verticaltransform and a horizontal transform takes place, when a transformomission flag is 1, transforms in horizontal and vertical directions maynot be performed, and when the transform omission flag is 0, transformsin horizontal and vertical directions may be performed. In a setting inwhich omission of a horizontal transform and omission of a verticaltransform are independently performed, when a first transform omissionflag is 1, a transform in a horizontal direction is not performed, andwhen the first transform omission flag is 0, the transform in ahorizontal direction is performed. When a second transform omission flagis 1, a transform in a vertical direction is not performed, and when thesecond transform omission flag is 0, the transform in a verticaldirection is performed.

When a size of a block falls within a range A, transform omission may besupported, and when the size falls within a range B, the transformomission may not be supported. For example, when a width of a block isgreater than M or a height of the block is greater than N, theabove-described transform omission flag may not be supported, and when awidth of a block is smaller than m or a height of the block is smallerthan n, the above-described transform omission flag may not besupported. M (m) and N (n) may be identical to or different from eachother. The transform-related settings may be determined on aunit-by-unit basis, such as a sequence, a picture, a slice, or the like.

When an additional transform scheme is supported, the transform schemesetting may be determined according to the encoding information. In thiscase, the encoding information may be a slice type, a coding mode, asize and shape of a block, a prediction mode, or the like.

In one example, support for a transform scheme may be determinedaccording to a slice type. In the case of an I-slice, transform schemessupported may be DCT-I, DCT-II, DST-I, and DST-II, in the case of aP-slice, transform schemes supported may be DCT-I, DST-I, and DST-II,and in the case of a B-slice, transform schemes supported may be DCT-I,DCT-II, and DST-I.

In one example, support for a transform scheme may be determinedaccording to a coding mode. In the case of intra mode, transform schemessupported may be DCT-I, DCT-I, DCT-III, DST-I, and DST-II, and in thecase of inter mode, transform schemes supported may be DCT-I, DCT-II,and DST-II.

In one example, support for a transform scheme may be determinedaccording to a size and shape of a block. A transform scheme supportedin a block of a certain size or greater may be DCT-I, transform schemessupported in a block of a size smaller than a certain size may be DCT-Iand DST-I, and transform schemes supported in a block having a sizegreater than or equal to a certain size and smaller than a certain sizemay be DCT-I, DCT-II, and DST-I. In addition, transform schemessupported in a square block may be DCT-I and DCT-II and transformschemes supported in a rectangular block may be DCT-I and DST-I.

In one example, support for a transform scheme may be determinedaccording to a prediction mode. Transform schemes supported inprediction mode A may be DCT-I and DCT-II, transform schemes supportedin prediction mode B may be DCT-I and DST-I, and a transform schemesupported in prediction mode C may be DCT-I. In this case, theprediction modes A and B are directional modes and the prediction mode Cmay be a non-directional mode.

The above examples are directed to transform scheme support inaccordance with one piece of encoding information, and two or morepieces of information may be combined to be involved in setting ofadditional transform scheme support. The transform scheme support maynot be limited to the above examples, and modifications of the examplesmay be possible.

Hereinafter, an intra prediction of the present invention will bedescribed in detail.

A reference pixel preparation process is required prior to generating aprediction block of intra prediction. Pixels of encoding-completedneighbor blocks (in the present example, left, lower left, above left,above, and above right blocks) may be targets of the process, and pixelsof neighbor blocks adjacent to a current block may be used as referencepixels for generating a prediction block. When any one of neighborblocks is not available, pixel positions of the unavailable block may befilled with one or more pixels from an available neighbor block. In thiscase, an unavailable block may occur when the block is located outside aboundary of an image (a picture, a slice, a tile, or the like) or whenthere is a condition restricting the use according to a coding mode(intra/inter modes). In this case, a position of an available neighborblock may be determined according to encoding settings. For example, anavailable pixel spatially close to a pixel to be filled may be used oran available pixel (may be related to a prediction mode) considered asbeing highly correlated with a pixel to be filled may be used. This maybe determined according to a position of a sub-block of a current block,which will be described with reference to an example described below.Reference pixels used in prediction of a current block may be managedusing one temporary memory, which may be a memory only used in thepredicting process of the current block.

Filtering may be applied to the reference pixels formed as describedabove. Filtering is performed for the purpose of reducing a predictionerror due to a quantization error by applying a low pass filter to atleast one reference pixel including the quantization error. Settings forfilter information (one or more filter coefficients and one or morefilter lengths) applied, the number and positions of reference pixels towhich filtering is applied, whether filtering information is generated,and the like may be adaptively determined according to a size and shapeof a prediction block or a transform block, an intra prediction mode, aposition of a sub-block in a current block, etc.

According to a prediction mode, prediction may be performed byinterpolating reference pixels in decimal units, as well as referencepixels in integer units. At this time, pixels used in interpolation maybe pixels at both sides adjacent to a position to be interpolated, andadditional pixels may be used. According to the number of pixels used ininterpolation, a 4-tap filter, a 6-tap filter, and the like may beapplied, and filter information (one or more filter lengths and one ormore filter coefficients) may be adaptively determined according to asize and shape of a block.

FIG. 10 is an exemplary diagram for describing an intra prediction modeperformed in HEVC.

Referring to FIG. 10, in HEVC, a total of 35 modes (33 directional modesand 2 non-direction modes) are included to support intra prediction. Asupported intra prediction mode may vary according to a size of a block.For example, 67 prediction modes may be supported for a 64×64 block, 35prediction modes may be supported for a 32×32 block, and 19 predictionmodes may be supported for a 16×16 block.

Also, according to a shape of a block, the supported intra predictionmode may be variable or definition of an intra-picture mode (in thepresent example, a mode spacing having directivity) may be changed.

FIG. 11 is an exemplary diagram for describing an intra prediction modeaccording to one embodiment of the present invention.

Referring to FIG. 11, in a case where a shape of a prediction block is asquare (2N×2N), an intra prediction mode as shown in 11 a of FIG. 11 maybe supported, in a case where the prediction block shape is a horizontalrectangle (2N×N), an intra prediction mode as shown in 11 b may besupported, and in a case where the prediction block shape is a verticalrectangle (N×2N), an intra prediction mode as shown in 11 c may besupported. In the above examples, narrow mode spacing may be applied ina direction (a width or height direction) in which the prediction blockis longest and wide mode spacing may be applied in a direction in whichit is shortest. Factors, such as a size of a prediction block, thenumber of prediction modes in accordance with a shape, a prediction modespacing, and the like, may be fixed, or various modifications thereofincluding variable cases of the above examples are possible.

FIG. 12 is an exemplary diagram for describing reference pixelsapplicable to a horizontal or vertical mode according to one embodimentof the present invention.

Intra prediction associated with a horizontal mode and a vertical modeof directional modes will be described with reference to FIG. 12.Reference letter p depicts a pixel predicted from a reference pixel, andreference letter q depicts a reference pixel of a neighbor block used inprediction. Reference pixels may be obtained from an encoding-completedblock and may be pixels (in a case of a current block with a size ofM×N<p_(0,0)˜p_(M−1,N−1)>, q_(−1,0) to q_(−1,2N−1) and q_(−1,−1) toq_(2M−1,−1)) belonging to the left, upper left, lower left, above, andabove right blocks.

FIG. 13 is an exemplary diagram for comparison between generalblock-based prediction and pixel-based prediction.

In the case of an intra prediction mode having directivity, a pixelvalue of p may be predicted by extrapolating a reference pixel q. In thecase of an intra prediction mode having directivity, two methods may beused to generate a prediction block, wherein one of the methods may be ablock-based prediction method or a pixel-based prediction method.

Referring to FIG. 13, reference numeral 13 a denotes a block-based intraprediction method, in which reference pixel q belonging to a blockadjacent to a current block may be used to predict all pixels in thecurrent block.

On the other hand, reference numeral 13 b denotes a pixel-based intraprediction method, in which reference pixel q is used only to predictadjacent pixels and each pixel may be predicted from anencoding-completed pixel adjacent to the pixel.

[Equation 1]d _(x,y) =p _(x,y) −q _(−1,y)  (1)d _(x,y) =p _(x,y) −q _(x,−1)  (2)

In Equation 1, d represents a difference value between an input pixel inthe block-based prediction method and a predicted pixel and equations(1) and (2), respectively, indicate a case in which a prediction mode isa horizontal mode and a case in which a prediction mode is a verticalmode (in the following Equations, the same order applied). A predictionvalue may be generated only using reference pixels in integer unitsincluding in the above mode, or in a mode having different directivity,reference pixels in decimal units between the reference pixels ininteger units may be obtained to generate a prediction value. In thepresent invention, for convenience of description, a case in whichreference pixels in integer units are used is taken as an example. Thismay be altered according to a different prediction mode in whichreference pixels in decimal units are applied.

[Equation 2]d′ _(x,y) =p _(x,y) −p _(x−1,y)  (3)d′ _(x,y) =p _(x,y) −p _(x,y−1)  (4)

In the above equations, d′ represents a difference value between aninput pixel and a predicted pixel in a pixel-based prediction method,and equations (3) and (4), respectively, indicate a case in which aprediction mode is a horizontal mode and a case in which a predictionmode is a vertical mode. In pixel-by-pixel prediction, since predictionis made using the nearest pixel located ahead in the predictiondirection, a difference value between each of pixels at the first rowand the first column and a reference pixel and a difference between eachof the other pixels and a previous pixel may be obtained in eachprediction mode. For example, in the case of a horizontal mode, d_(x,y)may be a difference between p_(x,y) and p_(x−1,y), and in the case of avertical mode, d_(x,y) may be a difference between p_(x,y) andp_(x,y−1).

[Equation 3]d′ _(x,y) =d _(x,y) −d _(x−1,y)  (5)d′ _(x,y) =d _(x,y) −d _(x,y−1)  (6)

Referring to Equation 3, pixel-based differences may be expressed asequations (5) and (6) using difference values obtained throughblock-based prediction. That is, this indicates that a difference valuethrough pixel-based prediction may be obtained using a difference valueobtained through block-based prediction. In each prediction mode, exceptthat a difference between pixels in the first row and the first columnis the same as a block-based difference value and a pixel-baseddifference value, difference values through pixel-based prediction maybe obtained using equations (5) and (6).

A residual block, which is a set of the difference values, may beconstructed and may be restored through transform, quantization, andinverse processes thereof. A lossless or lossy residual block may beobtained according to a quantization parameter, and the restoredresidual block may be added to a block or a pixel-based prediction blockso that a pixel may be restored.

[Equation 4]p′ _(x,y) =q _(−1,y) +d* _(x,y)  (7)p′ _(x,y) =q _(x,−1) +d* _(x,y)  (8)

Equation 4 represents a restoration process through block-basedprediction, p′_(x,y) represents a restored pixel, d*_(x,y) represents arestored difference value, and a lossless or loss value may be obtainedaccording to a quantization parameter.

[Equation 5]p′ _(x,y) =p _(x−1,y) +d′* _(x,y)  (9)p′ _(x,y) =p _(x,y−1) +d′* _(x,y)  (10)

FIG. 5 represents a restoration process through pixel-based prediction,p′_(x,y) represents a restored pixel, d′*_(x,y) represents a restoreddifference value, and a lossless or loss value may be obtained accordingto a quantization parameter.

$\begin{matrix}\left\lbrack {{Equation}\mspace{14mu} 6} \right\rbrack & \; \\{p_{x,y}^{\prime} = {q_{{- 1},y} + {\sum\limits_{k = 0}^{x}d_{k,y}^{*}}}} & (11) \\{p_{x,y}^{\prime} = {q_{x,{- 1}} + {\sum\limits_{k = 0}^{y}d_{x,k}^{*}}}} & (12)\end{matrix}$

Equation 6 is an equation derived by applying expressions in accordancewith equations (5) and (6) of Equation 3 to Equation 5.

In the case of pixel-based prediction, it is possible to perform basicprediction and encoding and then perform additional prediction aspostprocessing or to apply pixel-based prediction to the basicprediction and encoding. In the present invention, in the case ofblock-based prediction, an example in lossy compression will be given,and in the case of pixel-based prediction, an example in losslesscompression will be given. A basic description will be given withreference to block-based prediction. In the case of intra prediction,prediction and the order of encoding may be differently appliedaccording to a prediction block and a size and shape of a transformblock. In the following examples, a description will be given on theassumption that a coding block is available in a square and a predictionblock and a transform block are available in a square and rectangles.However, the examples are not limited to the above conditions such thata shape of a coding block is applicable to a rectangle, andmodifications of the examples may be applicable to other conditions.Hereinafter, an intra prediction method according to one embodiment ofthe present invention will be described.

FIG. 14 is an exemplary diagram for describing a general intraprediction method.

Referring to FIG. 14, intra prediction of a current block 2N×2N may beperformed using reference pixels belonging to a neighbor block andadjacent to the current block to be encoded and a prediction block 14-2may be generated. After a residual block 2N×2N 14-3 is obtained by adifference between the current block 2N×2N 14-2 to be encoded and theprediction block 2N×2N 14-2, a transform block 2N×2N may be obtained bytransforming the residual block 2N×2N 14-3, and quantization may beperformed on the transform block to develop an encoding process. At adecoder side, the residual block 14-3 may be restored through inversequantization and inverse transform, and the current block 14-1 may berestored by combining the restored residual block and the predictionblock 14-2.

FIG. 15 is an exemplary diagram for describing a process in whichtransformation and quantization are independently performed on aresidual block after intra prediction according to one embodiment of thepresent invention.

Referring to FIG. 15, a current block may be of 2N×2N form and atransform block may be of N×N form. In this case, when an encodingprocess is developed in accordance with a size of the transform block,prediction on each of sub-blocks a, b, c, and d (having a size of thetransform block) of a current block 14-1 may be independently performedusing reference pixels in a neighbor block, and for a prediction block14-2 consisting of partitions A, B, C, and D obtained as a result of theprediction, encoding on a residual block of a and A and independentencoding on a residual block of b and B, a residual block of c and C,and a residual block of d and D may be performed. As such, through theindependent encoding, parallel processing of encoding may be possible.However, the independent encoding may provide reduced predictionaccuracy.

FIG. 16 is an exemplary diagram for describing dependent intraprediction with reference to an encoding-completed sub-block of acurrent block according to one embodiment of the present invention.

Referring to FIG. 16, similarly to FIG. 15, a current block may have ablock form of 2N×2N, and a transform block may have a form of N×N.First, intra prediction on a sub-block a in a current block is performedusing reference pixels belonging to a neighbor block and adjacent to thecurrent block, and as a result, a prediction block A may be firstgenerated. Then, a residual block of a and A may be obtained, and arestored block of the sub-block a may be generated through transform,quantization, inverse quantization, and inverse transform processes andmay be used for intra prediction on the next sub-block b.

That is, in the intra prediction on the sub-block b, prediction isperformed using reference pixels belonging to a neighbor block andadjacent to the current block is used, as well as additional referencepixels that are pixels adjacent to the sub-block b in the restoredsub-block a, for which encoding is completed, thereby obtaining aprediction block B. In a similar manner, for sub-blocks c and d,prediction and encoding may be performed using previously encodedsub-blocks.

As such, when pixels of an encoding-completed sub-block are referred to,the prediction process is performed in a dependent manner, and thusthere may be limitations in parallel processing, but prediction accuracymay be improved.

FIG. 17 is an exemplary diagram for describing a process of independenttransform and quantization of residual blocks of a current block, towhich binary partitioning is applied, according to one embodiment of thepresent invention.

Referring to FIG. 17, a current block is a 2N×2N block and a transformblock may have a form of 2N×N due to binary partitioning.

Here, in the case in which independent intra prediction on sub-blocks aand b is performed, prediction and encoding of the sub-blocks a and bmay be independently performed using reference pixels belonging to aneighbor block and adjacent to a current block.

Therefore, in the present example, the form of the transform block maybe different from that of FIG. 15, but the prediction process may beperformed by the same method as in FIG. 15.

FIG. 18 is an exemplary diagram for describing dependent intraprediction with reference to an encoding-completed sub-block of acurrent block, to which binary partitioning is applied, according to oneembodiment of the present invention.

Referring to FIG. 18, like in FIG. 17, a current block may have a blockform of 2N×2N and a transform block may have a form of 2N×N due tobinary partitioning.

Similarly to the prediction process of FIG. 16, in FIG. 18, encoding ofa sub-block a is performed using pixels belonging to a block adjacent toa current block as main reference pixels, and in prediction of asub-block b, intra prediction may be performed by referring to pixelsbelonging to the encoding-completed sub-block a. That is, in the sameway as in FIG. 16, reference pixels of the encoding-completed sub-blockare also used to perform prediction, and due to the dependency ofprediction, sequential prediction and encoding may be performed.

Hereinafter, examples of a method of using reference pixels of anencoding-completed sub-block will be described, wherein as a method ofrepresenting pixels, it is defined that d[x][y] denotes a differentpixel obtained by subtracting a prediction value for a current pixelfrom arbitrary pixel coordinates (x,y), r[x][y] denotes a differencepixel restored after undergoing transform, quantization, and inverseprocesses thereof, and p′[x][y] denotes a current pixel restored afterundergoing prediction and encoding.

FIG. 19 is an exemplary diagram for describing general pixel-based intraprediction and block-based intra predicting in a vertical mode.

First, reference numeral 19 a represents pixel-based intra prediction,in which prediction and encoding of a current pixel are performed froman adjacent reference pixel restored after the completion of encoding,and prediction and encoding of a pixel neighboring in a predictiondirection may be sequentially performed by referring to the currentpixel restored after the completion of encoding.

A derivation process of a predicted pixel based on pixel coordinates [x][y] of a current block 2M×2N may be expressed by Equation 7 below.

$\begin{matrix}\left\lbrack {{Equation}\mspace{14mu} 7} \right\rbrack & \; \\{{{s\lbrack x\rbrack}\lbrack y\rbrack} = \left\{ \begin{matrix}{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack},} & \left( {{0 \leq x < {2\; M}},} \right. & \left. {y = 0} \right) \\{{{p^{\prime}\lbrack x\rbrack}\left\lbrack {y - 1} \right\rbrack},} & \left( {{0 \leq x < {2\; M}},} \right. & \left. {0 < y < {2N}} \right)\end{matrix} \right.} & \;\end{matrix}$

In addition, the predicted pixel may be expressed as a restoreddifference pixel r as shown in Equation 8 below.

$\begin{matrix}{\mspace{79mu}\left\lbrack {{Equation}\mspace{14mu} 8} \right\rbrack} & \; \\{{{s\lbrack x\rbrack}\lbrack y\rbrack} = \left\{ \begin{matrix}{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack},} & \left( {{0 \leq x < {2\; M}},} \right. & \left. {y = 0} \right) \\{{{{q\lbrack x\rbrack}\left\lbrack {y - 1} \right\rbrack} + {\sum\limits_{z = 0}^{y}{{r\lbrack x\rbrack}\lbrack z\rbrack}}},} & \left( {{0 \leq x < {2\; M}},} \right. & \left. {0 < y < {2N}} \right)\end{matrix} \right.} & \;\end{matrix}$

Then, reference numeral 19 b represents block-based intra prediction inwhich a current block may be predicted using reference pixels belongingto a block adjacent to the current block. Specifically, a predictionblock of the current block may be generated by padding the referencepixels in a vertical direction. This may be expressed as Equation 9below.

[Equation 9]s[x][y]=q[x][−1](0≤x<2M,0≤y<2N)

FIG. 20 is an exemplary diagram illustrating a block-based intraprediction method using a slope or difference value of reference pixelsaccording to one embodiment of the present invention.

Referring to FIG. 20, unlike 19 a and 19 b, a method of predicting acurrent pixel by combining parts of block-based prediction may bedescribed. When an arbitrary pixel 20-1 in a current block is predicted,in the case of pixel-based prediction, prediction is performed using thecurrent pixel 20-1 and a restored pixel 20-2 adjacent to the currentpixel as reference pixels. In this case, when the pixels are paddedintact and used as prediction values, the prediction may be inaccurate.Therefore, a difference value between the current pixel 20-1 and therestored pixel 20-2 adjacent to the current pixel is predicted byreferring to the current pixel and the adjacent pixel so that therestored pixel 20-2 adjacent to the current pixel can be corrected.

For example, a difference value d2 or d4 between two pixels at positionscorresponding to positions of the current pixel 20-1 and the restoredpixel 20-2 adjacent to the current pixel with respect to an intraprediction mode direction (in the case of a vertical mode) may be addedto the restored pixel 20-2 adjacent to the current pixel 20-1, therebypredicting the current pixel 20-1. In this case, whether to use thedifference value d2 or the difference value d4 may be determinedaccording to how close a prediction result obtained using the differencevalue is to the current pixel 20-1, and a weight may be applied to thedifference value d2 or d4.

Here, the difference value d3 or d4 used in predicting a current pixelmay be generally used in pixel-based prediction since pixels from whichthe difference values d3 and d4 are derived should be restored. However,in the present invention, the difference value is applied to block-basedprediction by considering the fact that, when a prediction block unit (atransform block in HEVC) is different from a current block, a sub-blockof the current block, which may serve as a prediction block unit, can befirst encoded and restored. For example, when two pixels used inderiving the difference value d4 belong to a restored sub-block in thecurrent block in FIG. 20, it may be possible to refer to the differencevalue d4 as shown in FIG. 20.

Meanwhile, when the current pixel 20-1 is predicted based on a block,intra prediction may be performed by referring to a restored pixel 20-3adjacent to the current block, rather than a restored pixel 20-2adjacent to the current pixel 20-1. In this case, in a similar manner asthe method described above, a difference value d1 or d3 between twopixels at positions corresponding to positions of the current pixel 20-1and the restored pixel 20-3 adjacent to the current block with respectto an intra prediction mode direction (in the case of a vertical mode)is added to the restored pixel 20-3 adjacent to the current block,thereby generating a prediction value of the current pixel 20-1. In thiscase, whether to use the difference value d1 or the difference value d3may be determined according to how close a prediction result obtainedusing the difference value is to the current pixel 20-1, and a weightmay be applied to the difference value d1 or d3.

In this case, the difference values d1 to d4 each may be represented asa slope between two pixels hereinafter.

In one example, a relation between the difference value d4, the currentpixel 20-1, and the restored pixel 20-2 adjacent to the current pixelmay be expressed as Equation 10 below.

$\begin{matrix}{\mspace{79mu}\left\lbrack {{Equation}\mspace{14mu} 10} \right\rbrack} & \; \\{{{s\lbrack x\rbrack}\lbrack y\rbrack} = \left\{ \begin{matrix}\begin{matrix}{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack} + {w\; 0 \times \left( {{{q\left\lbrack {- 1} \right\rbrack}\lbrack 0\rbrack} - {{q\left\lbrack {- 1} \right\rbrack}\left\lbrack {- 1} \right\rbrack}} \right)}} \\\left( {{x = 0},{y = 0}} \right)\end{matrix} \\\begin{matrix}{{{p^{\prime}\lbrack x\rbrack}\left\lbrack {y - 1} \right\rbrack} + {w\; 1 \times \left( {{{q\left\lbrack {- 1} \right\rbrack}\lbrack y\rbrack} - {{q\left\lbrack {- 1} \right\rbrack}\left\lbrack {y - 1} \right\rbrack}} \right)}} \\\left( {{x = 0},{0 < y < {2N}}} \right)\end{matrix} \\\begin{matrix}{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack} + {w\; 2 \times \left( {{{p^{\prime}\left\lbrack {x - 1} \right\rbrack}\lbrack y\rbrack} - {{q\left\lbrack {x - 1} \right\rbrack}\left\lbrack {- 1} \right\rbrack}} \right)}} \\\left( {{0 < x < {2M}},{y = 0}} \right)\end{matrix} \\\begin{matrix}{{{p^{\prime}\lbrack x\rbrack}\left\lbrack {y - 1} \right\rbrack} + {w\; 3 \times \left( {{{p^{\prime}\left\lbrack {x - 1} \right\rbrack}\lbrack y\rbrack} - {{p^{\prime}\left\lbrack {x - 1} \right\rbrack}\left\lbrack {y - 1} \right\rbrack}} \right)}} \\\left( {{0 < x < {2M}},{0 < y < {2N}}} \right)\end{matrix}\end{matrix} \right.} & \;\end{matrix}$

Here, w0, w1, w2, and w3 may represent weights, and the weights may beequal to each other, or may be smaller than 1.

In another example, a relation among the difference value d1, thecurrent pixel 20-1, and the restored pixel 20-3 adjacent to the currentblock may be expressed as Equation 11 below.

$\begin{matrix}{\mspace{79mu}\left\lbrack {{Equation}\mspace{14mu} 11} \right\rbrack} & \; \\{{{s\lbrack x\rbrack}\lbrack y\rbrack} = \left\{ \begin{matrix}{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack},\left( {{k \leq x < {2M}},{0 \leq y < {2N}}} \right)} \\{{{q\lbrack x\rbrack}\left\lbrack {- 1} \right\rbrack} + {w\; 0 \times \left( {{{q\left\lbrack {- 1} \right\rbrack}\lbrack y\rbrack} - {{q\left\lbrack {- 1} \right\rbrack}\left\lbrack {- 1} \right\rbrack}} \right)\mspace{14mu}\left( {{0 \leq x < k},{0 \leq y < {2N}}} \right)}}\end{matrix} \right.} & \;\end{matrix}$

In Equation 11, k denotes a value for setting an area to which thedifference value d1 is applied and may be applied for the purpose ofusing the difference value only for pixels having a certain range of xcoordinates according to the setting and not used for other pixels. Inaddition, w0 denotes a weight applied to the difference value d1 and maybe smaller than 1, and there may be an additional weight to control theimpact of w0. Moreover, a weight to be applied to the difference valuemay be set differently according to the value of k. Further, the weightmay be determined based on a distance between the current pixel 20-1 tobe predicted and a main reference pixel.

Hereinafter, a method of prediction using the restored pixel 20-2adjacent to the current pixel 20-1 as a main reference pixel or usingthe restored pixel 20-3 adjacent to the current block as a mainreference pixel in order to generate an intra prediction value of thecurrent pixel belonging to the current block will be described, andfurthermore, an example of a method of using at least one of differencevalues d1 to d4 will be described.

FIG. 21 is an exemplary diagram for describing a method of predicting ahorizontally split sub-block in vertical mode intra prediction accordingto one embodiment of the present invention.

Referring to FIG. 21, a process of generating a prediction block in eachsub-block when a vertical mode is performed as an intra prediction modewill be described. Each sub-block is a unit in which intra prediction isperformed and may be related to a case in which the current blockdiffers from a unit in which prediction is performed. When a currentblock is defined as 2M×2N, the sub-block may be defined as 2M×N. Inaddition, each sub-block may refer to a transform block in HEVC.

First, in 21 a, a first sub-block may be encoded prior to the currentblock and prediction may be performed by referring to a pixel belongingto a restored neighbor block and adjacent to the current block. Morespecifically, a pixel value of the pixel belonging to a block adjacentto the current block is padded in a vertical direction to generate aprediction block for the first sub-block. However, in this case,additionally, a prediction value of the current pixel may be generatedby correcting a reference pixel using a difference value between twopixels at positions corresponding to positions of the current pixel tobe predicted and a reference pixel adjacent to the current block withrespect to an intra prediction mode direction (in the case of a verticalmode). Specifically, the prediction block of the first sub-block may begenerated using the sum of the reference value and the difference valueas the prediction value for a pixel in the first sub-block.

Then, referring to 21 b, prediction of a second sub-block may beperformed with a pixel adjacent to the second sub-block in the encodedand restored first sub-block as the main reference pixel. In this case,similarly to 21 b, a prediction value of the current pixel may begenerated by correcting a main reference pixel with a difference valuebetween two pixels at positions corresponding to positions of thecurrent pixel and the main reference pixel adjacent to the current blockwith respect to an intra prediction mode direction (in the case of avertical mode). Specifically, a prediction block of the second sub-blockmay be generated using the sum of the main reference pixel and thedifference value as a prediction value for a pixel in the secondsub-block.

Referring to 21 c in comparison with 21 b, pixels located in the samedirection as the intra prediction direction with respect to the mainreference pixel in 21 b may be filtered to remove a quantization errorand the like, and then may be used as reference pixels. In this case, itis possible to use the filtered main reference pixel as it is or to usethe main reference pixel after correcting it with the difference valueas in 21 b. This may be an example in which adaptive reference pixelfiltering is applied according to an intra prediction mode and positionof the sub-block in the current block. Specifically, this may be anexample applied to a case where an area which belongs to the sameprediction block (in the present example, prediction is performed inunits of a transform block, but the prediction block may indicate ablock obtained in a block constructor and sub-blocks in a correspondingblock have the same prediction mode) and is referred to by the sub-blockis an encoded sub-block in the current block. Alternatively, this may bean example applied to a case in which the prediction mode of a referenceblock is the same as the prediction mode of the current block when anarea referred to by the sub-block is a block adjacent to the currentblock.

Referring to 21 d, in predicting a current pixel with theabove-described main reference pixel, a difference value, which isdifferent from that of 21 b, may be used. Specifically, the mainreference pixel is corrected using a difference value between a pixelbelonging to a block adjacent to the current block and the mainreference pixel, so that a prediction value for the current pixel may begenerated. That is, the main reference pixel is corrected using slopeinformation of previous pixels arranged in the intra prediction modedirection and the main reference pixel, rather than using slopeinformation of pixels at corresponding positions with respect to theintra prediction mode direction, so that the prediction value may begenerated. The slope information may be corrected based on a distancebetween the current pixel and the main reference pixel.

FIG. 22 is an exemplary diagram for describing a method of predicting avertically split sub-block in vertical mode intra prediction accordingto one embodiment of the present invention.

Referring to 22 a, prediction on a first sub-block may be performedusing a pixel belonging to a block adjacent to a current block as a mainreference pixel. Here, a prediction value of the current pixel belongingto the first sub-block may be used by padding the main reference pixel.

However, referring to 22 b, a main reference pixel is corrected with adifference between two pixels at positions corresponding to positions ofa current pixel to be predicted and the main reference pixel adjacent toa current block with respect to the intra-prediction mode direction (inthe case of a vertical mode) so that a prediction value of the currentpixel may be generated. Specifically, a prediction block of the firstsub-block may be generated using the sum of the main reference pixel andthe difference value as a prediction value of a pixel in the firstsub-block.

Referring to 22 c, since a pixel belonging to a block adjacent to thecurrent block is positioned on the intra prediction direction, the pixelbecomes a main reference pixel, and in this case, similarly to 22 b, themain reference pixel is corrected with a difference value between twopixels at positions corresponding to positions of the current pixel tobe predicted and the main reference pixel with respect to the intraprediction mode direction (in the case of a vertical mode) so that aprediction value of the current pixel may be generated. However, sincethe first sub-block has been already encoded and restored, there may betwo or more specified pixels that are located at positions correspondingto the positions of the current pixel and the main reference pixel withrespect to the intra prediction mode direction. That is, the differencevalue in 21 c may be regarded as d1 and d2. Here, the main referencepixel may be corrected with d1 or with d2, or the main reference pixelmay be corrected using both d1 and d2. In addition, the main referencepixel may be corrected with values obtained by weighting d1 and d2.

FIG. 23 is a first exemplary diagram for describing a method ofpredicting a sub-block split by a pixel line in vertical mode intraprediction according to one embodiment of the present invention.

First, referring to 23 a, a first sub-block of a current block to beencoded may be set by pixel lines arranged horizontally at even-numberedpositions with respect to a current block. Here, in the process ofgenerating a prediction block for the first sub-block, a pixel belongingto a block adjacent to the current block may be set as a main referencepixel and a prediction value of each pixel in the first sub-block may begenerated. More specifically, the prediction block for the firstsub-block may be generated by padding a pixel value of the mainreference pixel in the intra prediction direction.

Referring to 23 b, prediction on a second sub-block may be performedafter prediction and restoration of the first sub-block are completed.Here, the second sub-block may be set by pixel lines arrangedhorizontally at odd-numbered positions with respect to the currentblock. In the process of generating a prediction block for the secondsub-block, since not only a pixel belonging to a block adjacent to thecurrent block, but also the pixels of the encoded and restored firstsub-block are arranged in the intra prediction direction, such pixelsmay be all referred to in prediction of the second sub-block.

Specifically, prediction on the second sub-block may be performed byreferring to the current pixel to be predicted and two pixels that arearranged in the intra prediction direction and are adjacent to thecurrent pixel. In this case, referring to 23 b, since the predictionmode is a vertical mode, the pixels adjacent to the current pixel arelocated above and below the current pixel, and thus a prediction blockfor the second sub-block may be generated using the two pixels eachlocated above and below the current pixel. For example, the predictionblock may be generated using the sum of values obtained by applying aweight to each of the two pixels located above and below the currentpixel as a prediction value.

FIG. 24 is a second exemplary diagram for describing a method ofpredicting a sub-block split by pixel lines in vertical mode intraprediction according to one embodiment of the present invention.

Referring to 24 a, a first sub-block of a current block to be encodedmay be set to be an area formed by pixel lines arranged vertically ateven-numbered positions with respect to the current block. Here, in theprocess of generating a prediction block for the first sub-block, aprediction value of each pixel in the first sub-block may be generatedusing a pixel belonging to a block adjacent to the current block andarranged in the intra prediction direction as a main reference pixel.More specifically, a prediction block for the first sub-block may begenerated by padding a pixel value of the main reference pixel in theintra prediction direction.

Referring to 24 b, prediction on a second sub-block may be performedafter prediction and restoration of the first sub-block are completed.Here, the second sub-block may be set to an area formed by pixel linesarranged vertically at odd-numbered positions with respect to thecurrent block. In the process of generating a prediction block for thesecond sub-block, a pixel belonging to a block adjacent to the currentblock may be used as a main reference pixel. In addition, pixels of thefirst sub-block that are not arranged in the intra prediction directionmay be used to correct the main reference pixel.

For example, the main reference pixel may be corrected with a differencevalue between two pixels at positions corresponding to positions of thecurrent pixel and the main reference pixel with respect to the intraprediction mode direction (in the case of a vertical mode), wherein thetwo pixels may consist of a pixel belonging to the first sub-block andpixels belonging to a block adjacent to the current block, as shown in24 b.

Referring to 24 b, the difference value used to correct the mainreference pixel may be derived as d1 and d2. Only d1 or only d2 may beused, or values obtained by weighting d1 and d2 may be used.

FIG. 25 is a first exemplary diagram for describing a method ofpredicting a sub-block split in a quadtree manner in vertical mode intraprediction according to one embodiment of the present invention.

A process of encoding a first sub-block to a fourth sub-block which aresplit with respect to a current block to be encoded in a quadtree mannerwill be described with reference to 25 a, 25 b, 25 c, and 25 d in FIG.25.

Specifically, referring to 25 a, prediction on the first sub-block maybe performed by setting a pixel belonging to a block adjacent to acurrent block and located in intra prediction direction as a mainreference pixel.

Then, as shown in 25 b, prediction on the second sub-block may beperformed by setting a pixel belonging to a block adjacent to thecurrent block and located in intra prediction direction as a mainreference pixel.

Referring to 25 c, since encoding and restoration of the first sub-blockare completed, a pixel belonging to the first sub-block and adjacent tothe third sub-block is located in the intra prediction direction, andthus prediction on the third sub-block may be performed by using suchpixels as main reference pixels.

Referring to 25 d, when encoding and restoration of the second sub-blockare completed, prediction on the fourth sub-block may be performed bysetting a pixel belonging to the second sub-block and adjacent to thefourth sub-block as a main reference pixel.

FIG. 26 is a second exemplary diagram for describing a method ofpredicting a sub-block split in a quadtree manner in vertical mode intraprediction according to one embodiment of the present invention.

Referring to FIG. 26, encoding of a current block which is split into afirst sub-block to a fourth sub-block as shown in FIG. 25 is performed,wherein a main reference pixel may be corrected using a difference valueor filtering on the main reference pixel may be further applied.

First, referring to 26 a, in the process of generating a predictingblock for the first sub-block, a pixel belonging to a block adjacent tothe current block may be set as a main reference pixel, and the mainreference pixel may be corrected using a difference value between twopixels at positions corresponding to positions of a current pixel to bepredicted and the main reference pixel with reference to the intraprediction direction. In addition, the correction of the main referencepixel by use of the difference value may be performed only on a pixelwithin a predetermined distance, such as k range of 26 a.

Referring to 26 b, in the process of generating a prediction block for asecond sub-block, a pixel belonging to a block adjacent to a currentblock is set as a main reference pixel, and the main reference pixel maybe corrected using a difference value between two pixels at positionscorresponding to a current pixel to be predicted and the main referencepixel with respect to the intra prediction direction. Here, the twopixels may be located in the first sub-block that has been encoded andrestored.

Referring to 26 c, prediction on the third sub-block may be performed bysetting pixels located in the encoding-completed first sub-block andadjacent to the third sub-block as main reference pixels. In this case,filtering may be further performed on pixels arranged in the samedirection as the intra prediction direction with respect to the mainreference pixels.

Referring to 26 d, in the process of generating a prediction block forthe fourth sub-block, prediction may be performed by setting a pixelbelonging to the second sub block that has been encoded and restored andadjacent to the fourth sub-block as a main reference pixel. Here,additional correction is performed on the main reference pixel using adifference value shown in 26 d, and the prediction may be performedusing the corrected main reference pixel. In addition, a weight may beapplied to the difference value, and the weight may be set on the basisof a distance between the main reference pixel and a current pixel to bepredicted.

FIG. 27 is a second exemplary diagram for describing a method ofpredicting a sub-block split according to an odd or even coordinate invertical mode intra prediction according to one embodiment of thepresent invention.

Referring to 27 a, a first sub-block may consist of pixels each havingan odd x-coordinate and an odd y-coordinate of a current block to beencoded. In the process of generating a prediction block for the firstsub-block, a prediction block may be generated by setting a pixelbelonging to a block adjacent to the current block as a main referencepixel, and more specifically, the prediction block may be generated bypadding the main reference pixel to the first sub-block in the intraprediction direction (vertical direction).

Referring to 27 b, a second sub-block may consist of pixels each havingan odd x-coordinate and an even y-coordinate of the current block. Inthe process of generating a prediction block for the second sub-block, amain reference pixel may belong to a block adjacent to the currentblock. In addition, since the first sub-block that has been encoded andrestored is located in the intra prediction direction, the mainreference pixel may further include a pixel in the first sub-block.

Here, prediction on each pixel of the second sub-block to be predictedmay be performed by setting restored pixels above and below thepertinent pixel as main reference pixels, and more specifically, aweight is applied to each of the main reference pixels located above andbelow the pertinent pixel and a resultant value may be used as aprediction value.

Referring to 27 c, a third sub-block may consist of pixels each havingan even x-coordinate and an odd y-coordinate of the current block. Inthe process of generating a prediction block for the third sub-block,since a restored sub-block does not exist in the intra predictiondirection, the main reference pixel may be a pixel belonging to a blockadjacent to the current block.

In this case, the main reference pixel may be corrected using adifference value between two pixels at positions corresponding topositions of a current pixel of the third sub-block to be predicted andthe main reference pixel with respect to the intra prediction direction.In 27 c, since the two pixels at corresponding positions with respect tothe intra prediction direction may be located on both the left and rightof the current pixel to be predicted, difference values d1 and d3 may beused in prediction.

Referring to 27 d, a fourth sub-block may consist of pixels each havingan even x-coordinate and an even y-coordinate of the current block.Here, since pixels arranged in the intra-picture perdition direction arelocated on a side above and a side below the fourth sub-block, aprediction value for each pixel of the fourth sub-block may be obtainedusing two pixels located above and below each pixel of the fourthsub-block as main reference pixel, or a value obtained by applying aweight to two pixels above and below the current pixel may be used as aprediction value.

In addition, in 27 d, since 8 pixels around each pixel of the fourthsub-block are all restored, a prediction block for the fourth sub-blockmay be generated using all of the 8 restored pixels as main referencepixels, or values obtained by applying a weight to each of 8 pixelsaround a current pixel to be predicted may be used as prediction values.

FIG. 28 is an exemplary diagram for describing a method of performingpredicting further using a slope or difference value of reference pixelsin diagonal mode intra prediction according to one embodiment of thepresent invention.

In 28 a and 28 b of FIG. 28, pixels indicated by oblique lines arepixels belonging to a block adjacent to a current block and may indicatepixels for which encoding and restoration have been completed.

Referring to 28 a, as general diagonal mode prediction, prediction maybe performed by setting a pixel located in an intra prediction direction(diagonal direction) and belonging to a block adjacent to a currentblock as a main reference pixel. More specifically, a prediction valuefor each pixel of the current block may be generated by padding a pixelvalue of the main reference pixel to the current block in the intraprediction direction.

Referring to 28 b, prediction may be performed by setting a pixellocated in the intra prediction direction, among pixels belonging to ablock adjacent to the current block, as a main reference pixel. In thiscase, in 28 b, since pixels indicated by oblique lines are all arrangedin the prediction direction, except for q[−1][−1], these pixels mayserve as main reference pixels. More specifically, since two pixelsindicated by oblique lines exist with respect to the intra predictiondirection, an average value of the two pixels may be used as aprediction value or the sum of the two pixels each of which a weight isapplied may be used as a prediction value.

Here, prediction values of pixels located outside of an area indicatedby k may be generated using only a first main reference pixel at a startpoint in the prediction direction, among two pixels set as the mainreference pixels, and prediction values of pixels located in the areaindicated by k in 28 b may be generated using the first main referencepixel and a second main reference pixel.

Hereinafter, an intra prediction method according to one embodiment ofthe present invention will be described on the basis of a diagonal mode,rather than a vertical mode. Here, it is apparent that the methoddescribed with reference to the vertical mode can be equally applied bychanging the prediction direction, and thus a redundant description maybe omitted and some sub-block forms may be omitted.

Unlike the above-described example, in one or more modes, a predictionvalue may be generated using only a first main reference pixel. Forexample, in a diagonal down left mode (in the present example, assuminga mode in which a starting point is in the left top corner and paddingis performed in the right downward direction), a second main referencepixel which can be referred to may not exist. The first main referencepixel may be set as a basic reference pixel, and an additional referencepixel (in the present example, the second main reference pixel) may beused in generating a prediction value. In all modes in which the firstmain reference pixel and the second main reference pixel can be used, aprediction value may be generated using the first main reference pixeland the additional main reference pixel, or may be applied to somemodes. Such application may be determined according to a size and formof a block, a prediction mode, and the like.

FIG. 29 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block horizontally split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

In 29 a and 29 b, a first sub-block 2M×N and a second sub-block 2M×N maybe obtained by horizontally splitting a current block 2M×2N.

Referring to 29 a, a pixel located in an intra prediction direction(diagonal direction) among pixels of a block adjacent to the currentblock is set as a main reference pixel and prediction on the firstsub-block may be performed using the main reference pixel. Morespecifically, a prediction value for the first sub-block may begenerated by setting a pixel located at a start point in the intraprediction direction and belonging to the block adjacent to the currentblock as a main reference pixel. For example, a prediction value may begenerated by padding the main reference pixel in the predictiondirection.

Referring to 29 b, a prediction value may be generated by setting apixel located at a start point in the intra prediction direction andbelonging to a second sub-block as a main reference pixel. In this case,pixels of the first sub-block may not exist in the intra predictiondirection. In this case, a pixel belonging to the block adjacent to thecurrent block may be set as a main reference pixel, or a pixel of thefirst sub-block may be padded in the prediction direction so as to beused as a main reference pixel.

FIG. 30 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block horizontally split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

Referring to 30 a, since there are two pixels belonging to a blockadjacent to a current block in an intra prediction direction (diagonaldirection), two pixels (a first main reference pixel and a second mainreference pixel) are determined as main reference pixels, and aprediction value for a first sub-block may be generated using the mainreference pixels. Here, the first main reference pixel may be located ata start point in the prediction direction and the second main referencepixel may be located at an end point in the prediction direction. Inaddition, prediction values for pixels located in an area indicated by kmay be generated using both the first main reference pixel and thesecond main reference pixel, and prediction values for the pixelslocated out of the area indicated by k may be generated using only thefirst main reference pixel. Specifically, a value padded from the firstmain reference pixel may be used as a prediction value for the firstsub-block, or an average value of the first and second main referencepixels or a value obtained by applying a weight to each of the first andsecond main reference pixels may be used as a prediction value for thefirst sub-block.

A process of generating a prediction block for a second sub-block afterprediction and restoration for the first sub-block are completed may bedescribed with reference to 30 b. Here, a pixel belonging to therestored first sub-block is located at a start point in the intraprediction direction and a pixel adjacent to the current block islocated at an end point, and thus prediction on the second sub-block maybe performed by setting the two pixels as main reference pixels. In thiscase, pixels within a range set to k may be predicted using only thepixels belonging to the first sub-block as main reference pixels, andthe pixels outside of the range set to k may be predicted by furthersetting a pixel located at an end point in the prediction direction as amain reference pixel. In addition, a pixel belonging to the firstsub-block located at a start point in the prediction direction may notexist in a part in the prediction direction. In this case, as in 29 b, apixel belonging to the first sub-block may be padded in the predictiondirection, or prediction may be performed using a pixel belonging to ablock adjacent to the current block.

Another process of generating a prediction block for the secondsub-block may be described with reference to 30 c. As in 30 b, a pixellocated in the prediction direction and belonging to the first sub-blockmay be used as a main reference pixel, or filtering is performed on apixel belonging to the first sub-block and the filtered pixel value maybe used as a main reference pixel. In this case, a direction in whichfiltering is performed may be the same as or similar to the predictiondirection, and filtering may performed on pixels arranged in thecorresponding direction.

Still another process of generating a prediction block for the secondsub-block may be described with reference to 30 d. Specifically,prediction may be performed by setting a pixel belonging to the firstsub-block and located at a start point in the intra prediction directionas a first main reference pixel and setting a pixel belonging to a blockadjacent to the current block and located at a start point in anextended intra prediction direction as a second main reference pixel.For example, a value obtained by correcting the first main referencepixel with a difference value between the first main reference pixel andthe second main reference pixel may be determined as a prediction valueof the second sub-block. Alternatively, the sum of the first mainreference pixel and the difference value between the first and secondmain reference pixels or the sum of the first main reference pixel and avalue obtained by applying a weight to the difference value may bedetermined as a prediction value of the second sub-block. Specifically,slope information of previous pixels (in the present example, includingthe second main reference pixel) arranged in the intra predictiondirection, including the first main reference pixel, may be used tocorrect the first main reference pixel and the slope information may becorrected on the basis of a distance between a current pixel and thefirst main reference pixel.

FIG. 31 is a first exemplary diagram for describing a method ofperforming prediction on a sub-block vertically split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

In 31 a and 31 b, a first sub-block and a second sub-block each have asize of M×2N on the basis of a current block of 2M×2N.

Referring to 31 a, prediction on a first sub-block may be performed bysetting a pixel belonging to a block adjacent to a current block andlocated in an intra prediction direction as a main reference pixel. Morespecifically, prediction may be performed by setting a pixel located ata start point in the intra prediction direction as a main referencepixel.

Referring to 31 b, as in the first sub-block in 31 a, prediction on asecond sub-block may be performed by setting a pixel belonging to ablock adjacent to the current block and located at a start point in theintra prediction direction as a main reference pixel.

FIG. 32 is a second exemplary diagram for describing a method ofperforming prediction on a sub-block vertically split in a binary modein diagonal mode intra prediction according to one embodiment of thepresent invention.

Referring to 32 a, there are two pixels located onside above and theleft side of a current block in an intra prediction direction amongpixels belonging to a block adjacent to the current block. Therefore,prediction on a first sub-block may be performed by setting a pixellocated at a start point in the intra prediction direction at the top ofthe current block as a first main reference pixel and setting a pixellocated at an end point in the intra prediction direction on the leftside of the current block as a second main reference pixel. In thiscase, for a pixel located within an area set to k, both the first mainreference pixel and the second main reference pixel may be used, and fora pixel outside of the area set to k, only the first main referencepixel may be used. In the case in which both the first and second mainreference pixels are used, an average value of the two main referencepixels or the sum of values obtained by applying a weight to each of thetwo main reference pixels may be determined as a prediction value for acurrent pixel in the first sub-block.

Referring to 32 b, as in 32 b, a first main reference pixel belonging toa block adjacent to a current block may be used. However, since a pixelin the first sub-block for which encoding and restoration are completedis located in the intra prediction direction, a pixel in the firstsub-block may be set as a second main reference pixel for use. A methodof using the first main reference pixel and the second main referencepixel is the same as the method in 32 a, and thus a redundantdescription thereof will be omitted.

Referring to 32 c, as in 32 b, a first main reference pixel may be used,or a pixel in the first sub-block for which encoding and restoration arecompleted may be further used. In this case, in addition to a secondmain reference pixel, a third main reference pixel adjacent to thesecond main reference pixel in the intra prediction direction andlocated in the first sub-block may be further used to predict a secondsub-block. For example, the sum of values obtained by applying a weightto each of the first main reference pixel, the second main referencepixel, and the third main reference pixel may be determined as aprediction value for a current pixel of the second sub-block, or anaverage value of the first to third main reference pixels may bedetermined as a prediction value for a current pixel of the secondsub-block.

FIG. 33 is a first exemplary diagram for describing a method ofpredicting a sub-block split by a pixel line in diagonal mode intraprediction according to one embodiment of the present invention.

Referring to 33 a, a first sub-block of a current block to be encodedmay consist of pixel lines located horizontally at even-numberedpositions with respect to the current block. In this case, a pixelbelonging to a block located on a side above or a right side above thecurrent block may be set as a main reference pixel so that predictionvalue for each pixel of the first sub block may be generated by paddingthe main reference pixel value in the prediction direction.

Referring to 33 b, a second sub-block of a current block to be encodedmay consist of pixel lines located vertically at odd-numbered positionswith respect to the current block. In this case, a pixel belonging tothe first sub-block which has been already restored, or a pixelbelonging to a block adjacent to the current block exists ahead of andbehind of a current pixel to be predicted in a prediction direction, andthus two pixels located ahead of and behind in the prediction directionare set as main reference pixels so that prediction on the secondsub-block may be performed. Specifically, an average of the two pixelslocated ahead of and behind of the prediction direction of the currentpixel or the sum of values obtained by applying a weight to each of thetwo pixels may be determined as a prediction value of the current pixel.

In 33 a or 33 b, when a main reference pixel located in an intraprediction direction does not exist, the main reference pixel may bepadded in the prediction direction and be referred to, as describedabove.

FIG. 34 is a second exemplary embodiment for describing a method ofpredicting a sub-block split by a pixel line in diagonal mode intraprediction according to one embodiment of the present invention.

Referring to 34 a, a first sub-block of a current block to be encodedmay consist of pixel lines located vertically at even-numbered positionswith respect to the current block. In this case, a pixel belonging to ablock located on a side above or a right side above the current blockmay be set as a main reference pixel and a main reference pixel valuemay be padded in a prediction direction so that a prediction value foreach pixel of the first sub-block may be generated.

Referring to 34 b, a second sub-block of a current block to be encodedmay consist of pixel lines located vertically at odd-numbered positionswith respect to the current block. In this case, a pixel belonging to afirst sub-block which has been already restored, or a pixel belonging toa block adjacent to the current block exists ahead of and behind of acurrent pixel to be predicted in a prediction direction, and thus twopixels located ahead of and behind in the prediction direction are setas main reference pixels so that prediction on the second sub-block maybe performed. Specifically, an average of the two pixels located aheadof and behind of the prediction direction of the current pixel or thesum of values obtained by applying a weight to each of the two pixelsmay be determined as a prediction value of the current pixel.

In 34 a or 34 b, when a main reference pixel located in an intraprediction direction does not exist, the main reference pixel may bepadded in the prediction direction and be referred to, as describedabove.

The above embodiments include a case in which prediction is performedusing a pixel in integer units as the reference pixel in the predictionmode in a diagonal direction. In some modes, the embodiments may includea case in which prediction may be performed by interpolating referencepixels in decimal units, as well as reference pixels in integer unitsaccording to a prediction mode. In the above example, the first mainreference pixel is a pixel in integer units located at a start point ina prediction direction and the second main reference pixel is a pixel indecimal units located at an end point in the prediction direction.However, according to some prediction modes, the first main referencepixel may indicate a pixel in integer units or in decimal unit locatedat the start point in the prediction direction and the second mainreference pixel may indicate a pixel in integer units or in decimal unitlocated at the end point in the prediction direction. Alternatively, thefirst main reference pixel may indicate one pixel in integer units or indecimal unit located at the start point in the prediction direction andthe second main reference pixel may indicate two or more pixels ininteger units located at the end point in the prediction direction. Inthis case, two or more pixels in integer units may be pixels adjacent tothe end point in the prediction direction.

In the above embodiments, when encoding is performed by partitioninginto two or more sub-blocks, a transform may be performed using the sameor different transform schemes on a sub-block-by-sub-block basis. Forexample, when settings related to a transform (in the present example,whether to perform a transform, a transform type, and the like) arecompleted on a coding block unit, the same transform scheme determinedon the unit is applicable to a sub-block. In another example, whensettings related to a transform are completed on a transform block unit,an independent transform scheme may be applied to a sub-block.

FIG. 35 is an exemplary diagram for describing a flag indicating, on atransform block unit basis, whether a coding coefficient is present orabsent.

In 35 a and 35 b of FIG. 35, a bold solid line represents a coding blockpartitioning line, a thin solid line represents a transform blockpartitioning line at a coding block reference depth of 0, and a dottedline represents a transform block partitioning line at a depth of 1.

35 a is an example of setting of a coding coefficient presence/absenceflag (in the present example, cbf (coded block flag)) when a codingblock is partitioned using a quadtree scheme or the coding block is asquare block and when a transform block is transformed using a quadtreescheme or the transform block is a square block. In 35 a (when thelargest block is a 2N×2N block), an upper left block (N×N) and an upperright block (N×N) may be examples of blocks in which partitioning of thetransform block is not supported and a size and shape of the transformblock are determined as a coding block is determined. That is, in suchblocks, a coding block may not support information about a size andshape of a transform block.

Since the upper left block (N×N) and the upper right block (N×N) areblocks in which a transform block is determined without partitioning thetransform block, cbf for each color component is supported andadditional cbf information is not generated.

In the case of a lower left block (N×N), a transform block is split intosmaller blocks (N/2×N/2) and information on whether a coding coefficientof a split block is present or absent may be required. In this case,whether additional cbf information is generated for transform blockssplit into lower units may be determined according to cbf information.In the present example, since cbf information for each color componentis 0, a coding coefficient of each component does not occur in the splittransform blocks and thus cbf information is not additionally generated.

In the case of a lower right block (N×N), a transform block is split(N/2×N/2) and information on whether a coding coefficient of a splitblock is present or absent may be required. In this case, part of cbfinformation may be omitted. In the case of some color components (luma),a setting may be established (transmitted intact in the lower leftblock) on the assumption that, when the transform block is split, acoding coefficient occurs in at least one block among lower transformblocks. Hence, in the case of the lower right block, only information ofcbf_cb and cbf_cr may be generated. In the present example, under thesetting (cbf_L=1) in which a coding coefficient exists in the case ofluma, relevant information is omitted, and since cbf_cb is 1, cbf_cb forlower transform blocks may be additionally generated.

In the case of blocks (upper left, lower left, and lower right blocks<N/2×N/2>) in the lower right block (N×N), in each of which a transformblock is not further split, cbf_cr is set to 0 in an upper unit andhence is not generated, information of cbf_L and cbf_cb may begenerated, and additional cbf information is not generated.

In the case of an upper right block (N/2N/2), a transform block is split(N/4×N/4) and the transform block is split as in the upper unit so thatinformation of cbf_L is not generated (cbf_L=1) and only information oncbf_cb may be generated. In the present example, cf_cb is set to 0, andthus additional information on cbf_cb is not generated on a lower unit.

When further partitioning of a transform block does not occur, cbfinformation remaining until a current stage may be generated in thelower blocks (N/4×N/4). In the present example, cbf_L is the resultantcbf information.

35 b indicates an example of setting of a coding coefficientpresence/absence flag when a coding block is partitioned using a binarytree scheme or the coding block is a rectangular block and when atransform block is partitioned using a binary tree scheme or thetransform block is a rectangular block. In 35 b (when the largest blockis a 2N×2N block), the leftmost block (N/2×2N) and the second left block(N/2×2N) may be examples of blocks in which partitioning of thetransform block is not supported and a size and shape of the transformblock are determined as a coding block is determined. That is, in suchblocks, a coding block may not support information about a size andshape of a transform block.

In the case of an upper right block (N×N), a transform block is split(N×N/2) and information on whether a coding coefficient of the splitblock is present or absent may be required. In this case, whetheradditional cbf information for the transform blocks split into lowerunits is generated may be determined according to cbf information. Inthe present example, since cbf_L information for each color component is0, a coding coefficient of each component does not occur in the splittransform blocks and thus cbf_L information is not additionallygenerated. As described in the block partitioning process above, adependent setting may be possible in which coding, prediction, andtransform blocks follow a split form of luma after being resized in Cband Cr according to a color format. Also, independent settings for splitforms of Luma, Cb and Cr may be possible. In this case, cbf_cr andcbf_cb may be processed independently of cbf_L. In the present example,luma has a form further split as indicated by a dotted line. However,since cbf_L is 0, additional cbf_L information is not generated on lowerunits, and in the case of cb and cr, a split form is N×N (the same sizeand shape of the coding block), and thus cbf_cb and cbf_cr may not beadditionally generated. The settings for the above information maydetermine whether to support independent partitioning or dependentpartitioning according to conditions, such as a slice type, a size andshape of a block, and the like.

In the case of a lower right block (N×N) (a setting in which cb and crfollow luma), a transform block is split (N/2×N) and information onwhether a coding coefficient of the split block is present or absent maybe required. It is assumed that cbf of some color component (luma) isomitted on the assumption that a transform block in a lower unit ispresent (cbf_L=1). In the present example, since cf_cb is 0, cbf_cbinformation in a lower unit is no longer generated, and since cbf_cr is1, additional cbf_cr information may be generated in a transform blockin a lower unit. A left block (N/2×N) among the split transform blocksis not further split, and thus cbf_L and cbf_cr may be generated. Theright block (N/2×N) among the split transform blocks is subject totransform block split (dotted line), and thus cbf_L may be omitted andcbf_cr may be generated. The further split transform block (N/4×N) isnot further split, and information on each of cbf_L and cbf_cr may begenerated.

Accordingly, in the case of the lower right block, it is possible togenerate information of only cbf_cb and cbf_cr. In the present example,under the setting (cbf_L=1) in which a coding coefficient exists inluma, relevant information is omitted, and since cbf_cb is 1, cbf_cb forlower transform blocks may be additionally generated.

Through the above processes, it is possible to check the information onwhether a coding coefficient is present or absent on a transformblock-by-transform block basis. An encoding process for a codingcoefficient may be performed only when the cbf_is 1.

FIG. 36 is a diagram illustrating an example of syntax with respect to aresidual block in HEVC.

A large amount of coding coefficients (in the case of lossy compression)tend to occur near a direct current (DC) component and a low frequencycomponent due to transform and quantization processes. Therefore, it maybe inefficient to encode a coefficient component at every position of atransform block (M×N). It may be efficient if information (x, y) as towhich position a coding coefficient last occurred is transmitted. Theinformation may be represented by transmitting information on lengths ofwidth and height with respect to specific coordinates of a block (one ofupper left, upper right, lower left, and lower right blocks, which maybe determined according to an encoding setting (e.g., QP) or may bedetermined from two or more sets of candidates). Referring to FIG. 36,syntax for the information as to which position the coding coefficientlast occurred is last_sig_coeff_x_prefix˜last_sig_coeff_y_suffix.

In HEVC, a coding coefficient is processed by splitting a transformblock into sub-blocks in units of 4×4. Similarly to cbf of FIG. 35,syntax for handling the details on whether a non-zero coding coefficientis present or absent in sub-blocks in units of 4×4 iscoded_sub_block_flag, and a coding coefficient of a corresponding blockis encoded only when a value of the syntax is 1. As described above, asub-block unit (for encoding a coding coefficient) having a fixed sizeand shape regardless of a size and shape of a transform block may besupported, or a sub-block unit having an adaptive size and shape inaccordance with a size and shape of a transform block may be supported.For example, the sub-block unit including 4×4 may support an additionalsize and shape (e.g., 8×8), and in this case, a unit in whichcoded_sub_block_flag is supported may be 4×4 or other units with anadditional size and shape. In addition, the setting for the syntax mayvary according to a size and shape of a sub-block unit. Also, thesetting for the syntax may vary according to a coding mode. For example,when up to a coeff_abs_level_greater1_flags (flags indicating whether anabsolute value of a coding coefficient is greater than 1) and up to bcoeff_abs_level_greater2_flags (flags indicating whether an absolutevalue of a coding coefficient is greater than 2) are supported in afirst sub-block, up to c coeff_abs_level_greater1_flags and up to dcoeff_abs_level_greater2_flags may be supported in a second sub-block,wherein a may be greater than or equal to c, b may be greater than orequal to d, and a size of the first sub-block may be greater than a sizeof the second sub-block. In another example, when, in the case where acoding mode is intra mode, up to a coeff_abs_level_greater1_flags and upto b coeff_abs_level_greater2_flags are supported, up tocoeff_abs_level_greater1_flags and up to dcoeff_abs_level_greater2_flags may be supported in inter mode, wherein aand c may be equal to or different from each other and b and may beequal to or different from each other.

A description is given on the assumption that a current transform blockis a 4×4 block, which consists of one 4×4 sub-block, and thereforecoded_sub_block_flag is not generated, cbf information (supported on atransform-block-by-transform-block basis) is generated, and an order inwhich a 4×4 block scans coding coefficients follows a diagonal scan(from the top right to a lower left) order.

FIG. 37 is an exemplary diagram for describing encoding of a codingcoefficient according to one embodiment of the present invention.

Reference numeral 37 a denotes coding coefficients and reference numeral37 b denotes a scanning order of coding coefficients. For each codingcoefficient, sig_coeff_flag is generated, which may be syntax forindicating whether the coding coefficient is 0. When a value ofsig_coeff_flag is 0, additional syntax does not occur in a correspondingcoefficient, and when a value of sig_coeff_flag is 1, additional syntaxinformation for the coding coefficient may be generated. coeff_sign_flagcontains information as to which sign a corresponding coefficient has,wherein when a value thereof is 0, it may indicate a positive number andwhen a value thereof is 1, it may indicate a negative number. Inaddition, syntax (coeff_abs_level_greater1_flag) for indicating whetheran absolute value of a corresponding coefficient is greater than 1 ischecked, wherein when the absolute value is 0, additional syntax doesnot occur, and when the absolute value is 1, syntax(coeff_abs_level_greater2_flag) for indicating whether the absolutevalue of the corresponding coefficient is greater than 2 is checked.When a value of the syntax (coeff_abs_level_greater2_flag) is 0,additional syntax does not occur, and when the value is 1, syntax forremaining values of the corresponding coefficient may be supported.

Here, coeff_abs_level_remaining may be syntax that is supported whenprocessing cannot be performed using pieces of syntax for the respectivecoefficients supported on a sub-unit-by-sub-unit basis.

TABLE 1 Scanning order 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16coefficient 1 0 0 1 0 0 0 −1 −1 2 3 5 −5 6 −7 8 sig_coeff_flag 1 0 0 1 00 0 1 1 1 1 1 1 1 1 1 coeff_abs_level_greater1_flag 0 0 0 0 1 1 1 1coeff_abs_level_greater2_flag 0 coeff_sign_flag 0 0 1 1 0 0 0 1 0 1 0coeff_abs_level_remaining 1 3 3 5 6 7

The above Table 1 shows coding coefficients and related syntax accordingto the coding coefficients of 37 a and the scanning order of 37 b in acase where up to 8 coeff_abs_level_greater1_flags and up to 1coeff_abs_level_greater2_flag are supported. Settings may be establishedas shown above on the assumption that pieces of the above syntax aresupported starting from the first non-zero coding coefficient in thescanning order and when the maximum number of pieces of syntax occur,coefficients occurring after that are sufficiently large coefficients.Such settings may vary according to a size and shape of a sub-block andthe like.

In the case of coeff_abs_level_remaining, coefficient values remainingin consideration of sig_coeff_flag, coeff_abs_level_greater1_flag, andcoeff_abs_level_greater2_flag in the coding coefficients may becalculated by Equation 12 below.

[Equation 12]coeff_abs_level_remaining=|coefficient|−sig_coeff_flag−coeff_abs_level_greater1_flag−coeff_abs_level_greater2_flag

Equation 12 may be calculated according to syntax generated for eachcoefficient, and when syntax coeff_abs_level_remaining is not generated,a value of the syntax may be set to 0. In addition to syntax mentionedbelow, additional syntax factors used to reach coeff_abs_level_remainingmay be considered.

Basic settings of pieces of the above syntax are established accordingto lossy encoding. Typical lossy encoding includes a precondition that alarge amount of residual coefficients in a frequency domain occurs neara DC component at the upper left of a transform block. However,depending on some image features and a quantization parameter setting, asituation that violates the precondition may occur. For example, inpreparation for a situation where the transform coefficient distributionis not concentrated on general DC components, a transform orquantization may be omitted and a definition for the operation of thesyntax may be changed.

Binarization of coeff_abs_level_remaining may be supported by aconditional expression below.

$\begin{matrix}\left\lbrack {{Equation}\mspace{14mu} 13} \right\rbrack & \; \\{p = {{\left\lfloor \frac{v}{2^{k}} \right\rfloor\mspace{20mu}{where}\mspace{14mu} s} = {v - {p \cdot 2^{k}}}}} & \;\end{matrix}$

In Equation 13, prefix (p) is composed of truncated unary binarization,suffix(s) is composed of binary representation, and a binarization tableas shown in Table 2 is given.

TABLE 2 Codeword v k = 0 k = 1 k = 2 k = 3 k = 4 0 0    0.0   0.00 0.000 0.0000 1 10    0.1   0.01  0.001 0.0001 2 110    10.0   0.10 0.010 0.0010 3 1110    10.1   0.11  0.011 0.0011 4 11110   110.0  10.00 0.100 0.0100 5 111110   110.1  10.01  0.101 0.0101 6 1111110   1110.0 10.10  0.110 0.0110 7 11111110   1110.1  10.11  0.111 0.0111 8111111110  11110.0  110.00 10.000 0.1000 9 1111111110  11110.1  110.0110.001 0.1001 10 11111111110  111110.0  110.10 10.010 0.1010 11111111111110  111110.1  110.11 10.011 0.1011 12 1111111111110 1111110.01110.00 10.100 0.1100 13 11111111111110 1111110.1 1110.01 10.101 0.1101

In Table 2, k is a variable for the binarization table, and a codewordto be assigned to v may be adjusted according to k. A different codewordis characteristically assigned according to k. For example, in asituation where a large number of small values are generated, a smallervalue of k causes averagely a shorter codeword to occur in v, and in asituation where a numerous number of large values are generated, alarger value of k causes averagely a shorter codeword to occur in v.Hence, k may be a variable that is adjusted to keep an average codewordshort. Various methods including the above-described method may be usedfor binarization used in generating a codeword, such as the prefix, thesuffix, and the like, and classification of prefix and suffix, and theabove-described method may be one example of a method of generating anaveragely short codeword by adjusting a codeword assigned to each value(in the present example, a coding coefficient) according to a specificparameter variable, and other modification including such a concept maybe possible.

[Equation 14]If |x|>3·2^(k), then k′=min(k+1,4)

Equation 14 is an expression for a condition for updating k parameter.When the condition of Equation 14 is satisfied, k may be updated to k′,and a maximum value that k can reach is 4. K may be set according toconditions, such as bit_depth, a quantization parameter, and the like.

When the coding coefficients may be encoded according to the scanningorder in the sub-block, k may be initially set to 0. After a codewordaccording to a value v of the coeff_abs_level_remaining is assigned, acondition for updating a k value is checked by comparing it with theabove expression condition. When the above condition is satisfied, the kvalue is updated to k′ and may be used as k at the time of encoding avalue of the next coeff_abs_level_remaining. The k value can beincreased by up to 1 in each update process and increased up to themaximum value of 4 as set above, so that the k value can be involved incodeword assignment of coeff_abs_level_remaining. In addition, k may notchange or may increase, by nature, in the update process. Since in ageneral encoding environment (lossy), quantization is performed aftertransformation into frequency domain, as a direction of scanning orderprogresses, more number of coefficients having large absolute values aregenerated in a DC component (upper left of the residual block) and ascoefficients are located in the lower right side (high frequencydomain), coefficients having small absolute values are generated, andsuch characteristics are considered. The updating condition for the kvalue may have different settings on atransform-block-by-transform-block basis. In addition, differentsettings may be established according to encoding settings (in thepresent example, a quantization parameter, intra prediction method<block-based prediction/pixel-based prediction>). For example, in theprocess of prediction and encoding, a different updating condition forthe k value may be applied in the case of a predicted and encoded blockby additionally referring to pixels within a block already restored inthe current block, as well as pixels belonging to a block, which ispredicted and encoded using a reference pixel belonging to a blockadjacent to a current block. In the latter case, characteristics ofcoding coefficients (a quantized transform coefficient sequence or adifference pixel sequence after prediction) after the transform andquantization process due to generation of an accurate prediction blockmay be different. This may be connected to an example in which anupdating condition varies according to an intra prediction scheme,because characteristics of coding coefficients may differ according to ablock-based prediction method and a pixel-based prediction method. Asanother example, in the case of lossless compression, a differentupdating condition may be applied since different coding coefficientcharacteristics are shown in the case of lossy compression.

The update settings for k parameter as described above may affect theassignment of unsuitable codeword due to insufficient consideration ofcharacteristics of an image. In addition, characteristics according toother encoding settings may not be considered.

Efficient encoding may be performed by setting two or more sets ofcandidates for a characteristic of a k value (conventionally, a k valuedoes not decrease but increases and is incremented by 1 each time). Inone example of characteristics of a k value, the k value may increase ordecrease by nature. In one example, the k value may increase (ordecrease) by 1 or greater. In one example, a range of k may be set from0 to t, and t may have one or more sets of candidates. One or moresettings for k may be established by combining the above-describedvarious settings. Such settings may be determined on a unit-by-unitbasis, such as a sequence, a picture, a slice, or the like.

If the above-described additional characteristics of a k value aredefined, the equation for determining quantization of existingcoeff_abs_level_remaining needs to be modified.

$\begin{matrix}\left\lbrack {{Equation}\mspace{14mu} 15} \right\rbrack & \; \\{{T\left( S_{i} \right)} = {\frac{1}{N}{\sum\limits_{i = 0}^{N}S_{i}}}} & \;\end{matrix}$

In Equation 15, S_(i) represents each (non-zero) coding coefficient andT( ) represents a boundary value condition for determining which k valuewill be taken from the binarization table according to theabove-described k. N represents the number of (non-zero) codingcoefficients before the position of a current coding coefficient used toobtain T( ). T(S_(i)) may be obtained using an average of consecutivecoding coefficients before the current coding coefficient.

Codeword v k = 0 k = 1 k = 2 k = 3 k = 4 0 0    0.0   0.00  0.000 0.00001 10    0.1   0.01  0.001 0.0001 2 110    10.0   0.10  0.010 0.0010 31110    10.1   0.11  0.011 0.0011 4 11110   110.0  10.00  0.100 0.0100 5111110   110.1  10.01  0.101 0.0101 6 1111110   1110.0  10.10  0.1100.0110 7 11111110   1110.1  10.11  0.111 0.0111 8 111111110  11110.0 110.00 10.000 0.1000 9 1111111110  11110.1  110.01 10.001 0.1001 1011111111110  111110.0  110.10 10.010 0.1010 11 111111111110  111110.1 110.11 10.011 0.1011 12 1111111111110 1111110.0 1110.00 10.100 0.110013 1111111111111 1111110.1 1110.01 10.101 0.1101

38 is an exemplary diagram for describing coding coefficients before acurrent coding coefficient and a coefficient for determining a value ofEquation 15.

Reference numeral 38 a depicts coding coefficients (grey colored blocksrepresent non-zero coefficients) before a current coding coefficient,and some coding coefficients are used to calculate T(S_(i)). A range ofthe coefficient by which the k value is updated to k′ through Equation14 may be summarized as shown in Table 3 below.

TABLE 3 v k Codeword 0 0  0 1 0  10 2 0 110 3 1  10.1 4 1 110.0 5 1110.1 6 2  10.10 7 2  10.11 8 2 110.00 9 2 110.01 10 2 110.10 11 2110.11 12 3  10.100 13 3  10.101

From Table 3, a codeword of k=0 may be assigned to T(si) from 0 to 2,and a codeword of k=1 may be assigned to T(si) from 3 to 5. That is, acodeword of k updated through T(si) is assigned, which may be summarizedas shown in Table 3. Minimum codeword that each coefficient can haveaccording to the k parameter may be organized into one table. Forexample, if k is updated to 1 through the above-described updatingprocess for a current coefficient (assumed as 3), a codeword 101 for 3may be assigned when k is 1.

The additional k updating settings as described above are provided, sothat an adaptive codeword can be assigned. For example, according to aquantization parameter, the above method may be used in a losslesscompression environment, and the existing method may be used in a lossycompression environment. It is possible to improve encoding efficiencyby changing not only a setting for operation of syntax but also asetting for scanning in the entropy encoding process, as describedabove.

TABLE 4 Intra N × N TU Prediction Mode N = 4 N = 8 N = 16 N = 32 HOR − 4to HOR + 4 Diag Ver → Hor Hor → Ver Diag VER − 4 to VER + 4 Diag Hor →Ver Ver → Hor Diag Remaining modes Diag Diag Diag Diag

In Table 4, a scanning method in intra prediction is defined. In HEVC,different scanning methods are applied according to intra predictionmode. However, according to image characteristics, a quantizationparameter, or the like, the existing scanning direction may not beapplicable. In the above table, three scanning patterns diag, ver, andhor are provided according to a block size and a prediction mode. Forexample, a scanning pattern in the case of a non-zero quantizationparameter and a scanning pattern in the case of a zero (i.e. lossless)quantization parameter may be changed (in the arrow direction). That is,conventionally, a scanning method is changed according to a block sizeand a prediction mode, whereas in the present example, another scanningmethod is applied according to the quantization parameter. In the abovecase, there are three types of scanning patterns and the existingscanning patterns are used according to a quantization parametercondition. Also, it is possible to apply additional patterns, other thanthe existing scanning patterns, according to the quantization parametercondition. A shape of a block, a block partitioning method (in thepresent example, a transform block) and the like may be taken intoconsideration as additional factors affecting the setting of thescanning patterns.

FIG. 39 is a flowchart illustrating a decoding method using intraprediction according to one embodiment of the present invention.

Referring to FIG. 39, the decoding method using intra prediction, whichis performed in a decoding apparatus, may include receiving a bit stream(100), obtaining decoding information from the received bit stream(200), generating a prediction block for a current block to be decodedusing the obtained decoding information (300), and restoring the currentblock by adding a residual block obtained from the bit stream and theprediction block (400).

Here, in the generating of the prediction block (300), the predictionblock for the current block may be generated by generating a predictionvalue for each pixel of the current block using at least one mainreference block selected from restored pixels belonging to a blockadjacent to the current block or belonging to at least one sub-block ofthe current block.

Here, the main reference pixel may be a pixel located in an intraprediction direction among the restored pixels.

Here, the generating of the prediction block (300) may include, when twoor more main reference pixels located in the intra prediction direction,generating the prediction block for the current block using two mainreference pixels nearest to a current pixel, which are located ahead ofand behind in the intra prediction direction with respect to the currentpixel to be predicted in the current block.

Here, in the generating of the prediction block for the current blockusing the two main reference pixels nearest to the current pixel, theprediction block may be generated by using an average of the two mainreference pixels or the sum of values obtained by applying a weight toeach of the two main reference pixels as a prediction value of thecurrent pixel.

Here, the at least one sub-block may be obtained by partitioning thecurrent block using one of a quadtree scheme and a binary tree scheme,or may be obtained by partitioning the current block using the quadtreescheme and the binary tree scheme together.

Here, the at least one sub-block may consist of pixel lines locatedhorizontally at even-numbered or odd-numbered positions in the currentblock.

Here, the at least one sub-block may consist of pixel lines locatedvertically at even-numbered or odd-numbered positions in the currentblock.

Here, in the at least one sub-block, coordinates (x, y) of each pixel inthe current block may consist of an even x-coordinate and an eveny-coordinate, consist of an x-coordinate and a y-coordinate, either onebeing an even coordinate and the other being an odd coordinate, orconsist of an odd x-coordinate and an odd y-coordinate.

Here, the generating of the prediction block (300) may include the stepsof: correcting the main reference pixel using a difference between twopixels at positions corresponding to positions of the main referencepixel among the restored pixels and the current pixel to be predicted inthe current block with respect to the intra prediction direction; andgenerating the prediction block using the corrected main referencepixel.

Here, in the correcting of the main reference pixel, the main referencepixel may be corrected by adding the difference value and the mainreference pixel or adding a value obtained by applying a weight to thedifference value and the main reference pixel.

Here, in the correcting of the main reference pixel, the main referencepixel may be corrected only when a pixel within a predetermined rangeamong current pixels is predicted.

Here, in the correcting of the main reference pixel, when two or moredifference values are derived, the main reference pixel may be correctedusing an average of the two or more difference values or values derivedby applying a weight to each of the two or more difference values.

FIG. 40 is a block diagram illustrating a decoding apparatus using intraprediction according to one embodiment of the present invention.

Referring to FIG. 40, the decoding apparatus 30 using intra predictionmay include at least one processor 31 and a memory 32 in which commandsfor instructing the at least one processor to perform at least oneoperation are stored.

Here, the at least one operation may include the steps of receiving abit stream, obtaining decoding information from the received bit stream,generating a prediction block for a current block to be decoded usingthe obtained decoding information, and restoring the current block byadding a residual block obtained from the bit stream and the predictionblock.

Here, in the generating of the prediction block, the prediction blockfor the current block may be generated by generating a prediction valuefor each pixel of the current block using at least one main referenceblock selected from restored pixels belonging to a block adjacent to thecurrent block or belonging to at least one sub-block of the currentblock.

Here, the main reference pixel may be a pixel located in an intraprediction direction among the restored pixels.

Here, the generating of the prediction block may include, when two ormore main reference pixels located in the intra prediction direction,generating the prediction block for the current block using two mainreference pixels nearest to a current pixel, which are located ahead ofand behind in the intra prediction direction with respect to the currentpixel to be predicted in the current block.

Here, in the generating of the prediction block for the current blockusing the two main reference pixels nearest to the current pixel, theprediction block may be generated by using an average of the two mainreference pixels or the sum of values obtained by applying a weight toeach of the two main reference pixels as a prediction value of thecurrent pixel.

Here, the at least one sub-block may be obtained by partitioning thecurrent block using one of a quadtree scheme and a binary tree scheme,or may be obtained by partitioning the current block using the quadtreescheme and the binary tree scheme together.

Here, the generating of the prediction block may include the steps of:correcting the main reference pixel using a difference between twopixels at positions corresponding to positions of the main referencepixel among the restored pixels and the current pixel to be predicted inthe current block with respect to the intra prediction direction; andgenerating the prediction block using the corrected main referencepixel.

Here, in the correcting of the main reference pixel, the main referencepixel may be corrected by adding the difference value and the mainreference pixel or adding a value obtained by applying a weight to thedifference value and the main reference pixel.

Here, in the correcting of the main reference pixel, the main referencepixel may be corrected only when a pixel within a predetermined rangeamong current pixels is predicted.

Additionally, the decoding apparatus 30 according to one embodiment ofthe present invention may be configured to perform a method identical toor corresponding to the decoding method with reference to 39, andredundant descriptions are omitted.

In addition, the decoding apparatus 30 may be, for example, a desktopcomputer capable of communication, a laptop computer, a notebookcomputer, a smartphone, a tablet personal computer (PC), a mobile phone,a smar watch, smart glasses, an e-book reader, a portable multimediaplayer (PMP), a portable game console, a navigation device, a digitalcamera, a digital multimedia broadcasting (DMB) player, a digital videorecorder, a digital video player, a personal digital assistant (PDA),and the like.

In addition, the decoding apparatus 30 may further include aninputter/outputter configured to receive a user's input and display adecoded image, and the inputter/outputter 33 may include, for example, akeyboard, a mouse, a touch screen, a display device, and the like.

In addition, the decoding apparatus 30 may further include a storage 34in which images processed before and after decoding process, frames, andblocks are stored. The storage 34 may include, for example, hard diskdrive (HDD), solid state disk (SSD), and the like.

The methods according to the present invention may be realized in aprogram command format that may be executed by using diverse computingmeans, so as to be recorded in a computer-readable medium. Herein, thecomputer-readable medium may independently include a program command, adata file, a data structure, and so on, or may include a combination ofthe same. The program command being recorded in the medium maycorrespond to a program command that is specifically designed andconfigured for the embodiments of the present invention, or the programcommand may correspond to a program command that is disclosed andavailable to anyone skilled in or related to computer software.

Examples of the computer-readable recording medium may include magneticmedia, such as hard discs, floppy discs, and magnetic tapes, opticalmedia, such as CD-ROMs, DVDs, and so on, magneto-optical media, such asfloptical discs, and hardware devices specially configured (or designed)for storing and executing program commands, such as ROMs, RAMs, flashmemories, and so on. Examples of a program command may not only includemachine language codes, which are created by a compiler, but may alsoinclude high-level language codes, which may be executed by a computerby using an interpreter, and so on. The above-mentioned hardwareequipment may be configured to be operated as one or more softwaremodules for executing the operations of the exemplary embodiment of thepresent invention, and vice versa.

In addition, a part or whole of the configurations or functions of theabove-described method or apparatus may be implemented in a combinedmanner or separately.

The invention claimed is:
 1. A decoding method which uses intra prediction performed in a decoding apparatus, the decoding method comprising the steps of: receiving a bitstream; obtaining decoding information from the received bitstream; generating a prediction block for a current block to be decoded, by using the obtained decoding information; and restoring the current block by adding a residual block obtained from the bitstream to the prediction block, wherein generating the prediction block comprises: predicting a pixel of a first region belonging to the current block, by using at least one restored pixel of a neighboring block adjacent to the current block; and predicting a pixel of a second region belonging to the current block, by using the predicted pixel of the first region and the restored pixel of the neighboring block, and wherein the first region includes only at least one pixel of even-numbered pixel lines within the current block, and the second region includes at least one pixel of odd-numbered pixel lines within the current block.
 2. The decoding method of claim 1, wherein both of an x-coordinate and a y-coordinate of the pixel in the first region are odd, and wherein an x-coordinate of the pixel in the second region is odd and a y-coordinate of the pixel in the second region is even.
 3. The decoding method of claim 1, wherein the pixel of the even-numbered pixel lines within the current block is predicted before the pixel of the odd-numbered pixel lines within the current block.
 4. The decoding method of claim 3, wherein the predicted pixel of the first region and the restored pixel of the neighboring block are located at a same vertical line as the pixel of the second region.
 5. The decoding method of claim 4, wherein the pixel of the second region is predicted by applying a predetermined weight to each of the predicted pixel of the first region and the restored pixel of the neighboring block.
 6. A decoding apparatus using intra prediction, comprising: at least one processor; and a memory in which commands for instructing the at least one processor to perform at least one operation are stored, wherein the at least one operation includes: receiving a bitstream; obtaining decoding information from the received bitstream; generating a prediction block for a current block to be decoded using the obtained decoding information; and restoring the current block by adding a residual block obtained from the bitstream to the prediction block, wherein generating the prediction block comprising: predicting a pixel of a first region belonging to the current block, by using at least one restored pixel of a neighboring block adjacent to the current block; and predicting a pixel of a second region belonging to the current block, by using the predicted pixel of the first region and the restored pixel of the neighboring block; and wherein the first region includes only at least one pixel of even-numbered pixel lines within the current block, and the second region includes at least one pixel of odd-numbered pixel lines within the current block.
 7. The decoding apparatus of claim 6, wherein both of a x-coordinate and a y-coordinate of the pixel in the first region are odd, and wherein an x-coordinate of the pixel in the second region is odd and a y-coordinate of the pixel in the second region is even.
 8. The decoding apparatus of claim 6, wherein the pixel of the even-numbered pixel lines within the current block is predicted before the pixel of the odd-numbered pixel lines within the current block.
 9. The decoding apparatus of claim 8, wherein the predicted pixel of the first region and the restored pixel of the neighboring block are located at a same vertical line as the pixel of the second region.
 10. The decoding apparatus of claim 9, wherein the pixel of the second region is predicted by applying a predetermined weight to each of the predicted pixel of the first region and the restored pixel of the neighboring block. 